有关right和cast的问题,想输出三位数的数字为四位数,在线等待

bona 2003-08-19 04:51:19
例如:字段里的数字为110
可是我想把它输出为0110,不知如何?
请大侠解答!帮帮忙
...全文
109 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
microren 2003-08-20
  • 打赏
  • 举报
回复
pengdali(大力 V2.0)真是牛!
学习!!
bona 2003-08-19
  • 打赏
  • 举报
回复
特殊感谢pengdali(大力 V2.0)
bona 2003-08-19
  • 打赏
  • 举报
回复
小弟第一次发贴,就得到大家鼎立襄助,十分感谢,不吝惜分数,大家都给
bona 2003-08-19
  • 打赏
  • 举报
回复
RIGHT(10000+@,4)
感谢大家!问题解决,上面就是最优
nboys 2003-08-19
  • 打赏
  • 举报
回复
试一试:

create table test (id int)
insert into test values(120)
insert into test values(110)

declare @a varchar(100)
select @a = right(('0000'+convert(varchar,id)),4) from test
exec('select [id] as ['+@a+'] from test')

drop table test

nboys 2003-08-19
  • 打赏
  • 举报
回复
A.TRADE_MODE AS right('0000'+cast(字段 as varchar),4)

如果字段有多个值,那么别名也有多个,显然是不行的

pengdali 2003-08-19
  • 打赏
  • 举报
回复
除非:

declare @i int,@j varchar(8000)
set @i=110

set @j='select 列1 as ['+right(10000+@i,4)+'] from 表'
exec(@j)
pengdali 2003-08-19
  • 打赏
  • 举报
回复
as 后面不能跟变量或表达式。
pengdali 2003-08-19
  • 打赏
  • 举报
回复
declare @ int
set @=110

---显示:
select right(10000+@,4)
txlicenhe 2003-08-19
  • 打赏
  • 举报
回复

Select A.TRADE_MODE AS right('0000'+cast(字段 as varchar),4) -- 会出错


wuyanfeng 2003-08-19
  • 打赏
  • 举报
回复
select right('0000'+cast(字段 as varchar(4)),4) from 表
注意:varchar(4)数据类型必须指定长度!
bona 2003-08-19
  • 打赏
  • 举报
回复
还是不太明白!!^_^不好意思,小弟很菜。这只是存储过程中的一段代码,我给拿了出来,但是总出错
hjb111 2003-08-19
  • 打赏
  • 举报
回复
在存储过程中可以写成这样子么?
A.TRADE_MODE AS right('0000'+cast(字段 as varchar),4),
不可以

create view v_trade_mode as
select right('0000'+cast(字段 as varchar),4) from yourtable
go

查询:
select * from v_trade_mode
bona 2003-08-19
  • 打赏
  • 举报
回复
服务器: 消息 156,级别 15,状态 1,行 4
在关键字 'right' 附近有语法错误。
运行存储过程后就出现上面的错误,为什么?
liuyun2003 2003-08-19
  • 打赏
  • 举报
回复
select right('0000'+cast(字段 as varchar),4)as 名 from 表
liuyun2003 2003-08-19
  • 打赏
  • 举报
回复
select right('0000'+cast(字段 as varchar),4)as 名 from 表
bona 2003-08-19
  • 打赏
  • 举报
回复
在存储过程中可以写成这样子么?
A.TRADE_MODE AS right('0000'+cast(字段 as varchar),4),
FROM REL1 A JOIN REL2 B
haozhiyuan2003 2003-08-19
  • 打赏
  • 举报
回复
select right('0000'+cast(字段 as varchar),4) from 表
bona 2003-08-19
  • 打赏
  • 举报
回复
在存储过程中可以写成这样子么?
A.TRADE_MODE AS right('0000'+cast(字段 as varchar),4),
microren 2003-08-19
  • 打赏
  • 举报
回复
declare @d int
--declare
set @d=0110
print right('0'+convert(varchar(10),@d),4)
加载更多回复(1)

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧