首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

if中是否可以带有in解决思路

2012-04-13 
if中是否可以带有inSQL codedeclare @priorrodno varchar(50) declare @priorstate varchar(50) select to

if中是否可以带有in

SQL code
declare @priorrodno varchar(50) declare @priorstate varchar(50) select top 1 @priorrodno=rodno,@priorstate=state from PRO_Priorflow where flowprocess='脱气' and left(state,1)='P' order by state if (@@ROWCOUNT>0) begin if(@priorrodno in('A03P0058','A10R0078','A08R0107','A06P0040','A01P0317','A05R0126','A02P0308')) begin print 'a'endend

貌似if(@priorrodno in('A03P0058','A10R0078','A08R0107','A06P0040','A01P0317','A05R0126','A02P0308')) 这句有问题,敢问哪位高手是否可以这么写或者有其他的判断
@priorrodno在这组数据里面的方法吗?

[解决办法]
可以这么写,没问题。
[解决办法]
或者用字符串比较的方式,但注意变量及字符串前后都要加上‘,’。
if(charindex(','+@priorrodno+',', ',A03P0058,A10R0078,A08R0107,A06P0040,A01P0317,A05R0126,A02P0308,')>0)
[解决办法]
那先打印一下@priorrodno这个,看看是什么值。
[解决办法]
declare @priorrodno varchar(50) 
set @priorrodno='A03P0058'

if(@priorrodno in('A03P0058','A10R0078','A08R0107','A06P0040','A01P0317','A05R0126','A02P0308')) 
begin 
print 'a'

end

------
这句没问题呢, 输出 'a'
[解决办法]
SQL code
declare @dd varchar(32)='ds'if @dd in('sasd','3sf','343','ds')beginprint 1endelsebeginprint 2end/*1*/
[解决办法]
有可能就 没有走到你的 if (@@ROWCOUNT>0) 这个分支就。
SQL code
if (@@ROWCOUNT>0) begin if(@priorrodno in('A03P0058','A10R0078','A08R0107','A06P0040','A01P0317','A05R0126','A02P0308')) begin print 'a'endelsebeginprint 'b'endendelsebeginprint '11'end这样写看看走到那个分支了 

热点排行