在存储过程中可以写成这样子么? 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
select right('0000'+cast(字段 as varchar(4)),4) from 表 注意:varchar(4)数据类型必须指定长度!
Select A.TRADE_MODE AS right('0000'+cast(字段 as varchar),4) -- 会出错
declare @ int set @=110---显示: select right(10000+@,4)
除非:declare @i int,@j varchar(8000) set @i=110set @j='select 列1 as ['+right(10000+@i,4)+'] from 表' exec(@j)
A.TRADE_MODE AS right('0000'+cast(字段 as varchar),4)如果字段有多个值,那么别名也有多个,显然是不行的
试一试: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
--declare
set @d=0110
print right('0'+convert(varchar(10),@d),4)
A.TRADE_MODE AS right('0000'+cast(字段 as varchar),4),
A.TRADE_MODE AS right('0000'+cast(字段 as varchar),4),
FROM REL1 A JOIN REL2 B
在关键字 'right' 附近有语法错误。
运行存储过程后就出现上面的错误,为什么?
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
注意:varchar(4)数据类型必须指定长度!
Select A.TRADE_MODE AS right('0000'+cast(字段 as varchar),4) -- 会出错
set @=110---显示:
select right(10000+@,4)
set @i=110set @j='select 列1 as ['+right(10000+@i,4)+'] from 表'
exec(@j)
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
感谢大家!问题解决,上面就是最优
学习!!