declare @s varchar(2000) set @s='FS051025009,FS051027015,FS051028012' select @s=''''+replace(@s,',',''',''')+'''' select @s--结果 'FS051025009','FS051027015','FS051028012'
把@S拆分后怎么在SQL语句中where TicketNo IN (@S)执行的结果 和where TicketNo IN ('FS051025009','FS051027015','FS051028012')结果不一样
我的问题是说怎样把类似于@STR='FS051025009,FS051027015,FS051028012'的数放到SQL语句中像where TicketNo IN ('FS051025009','FS051027015','FS051028012')那样执行高手帮忙呀
--拼SQL啊。declare @s varchar(2000) set @s='FS051025009,FS051027015,FS051028012' select @s=''''+replace(@s,',',''',''')+'''' select * from 表 where TicketNo IN (@s)--或者 select * from 表 where charindex(','+cast(TicketNo as varchar)+',',',FS051025009,FS051027015,FS051028012,')>0
TO zlp321002(永远泡不到妞) select * from 表 where TicketNo IN (@s) 和 select * from 表 where TicketNo IN ('FS051025009','FS051027015','FS051028012')执行结果不一样 由于在存储过程中写的而且@s不固定 所以不能直接把 charindex(','+cast(TicketNo as varchar)+',',',FS051025009,FS051027015,FS051028012,')>0 作为条件 不过还是要谢谢你
set @s='FS051025009,FS051027015,FS051028012'
select @s=''''+replace(@s,',',''',''')+''''
select @s--结果
'FS051025009','FS051027015','FS051028012'
和where TicketNo IN ('FS051025009','FS051027015','FS051028012')结果不一样
set @s='FS051025009,FS051027015,FS051028012'
select @s=''''+replace(@s,',',''',''')+''''
select * from 表
where TicketNo IN (@s)--或者
select * from 表
where charindex(','+cast(TicketNo as varchar)+',',',FS051025009,FS051027015,FS051028012,')>0
select * from 表 where TicketNo IN (@s) 和 select * from 表 where TicketNo IN ('FS051025009','FS051027015','FS051028012')执行结果不一样
由于在存储过程中写的而且@s不固定 所以不能直接把 charindex(','+cast(TicketNo as varchar)+',',',FS051025009,FS051027015,FS051028012,')>0 作为条件 不过还是要谢谢你