我在SQL Server 2012中遇到了一种情况,我需要根据变量查询表中的不同列。所以我有一个表格,列中有一个bld_type字段和3个特定于年份的附加列。与去年列包含一个a或I
所以表中设置这样在where子句中使用if语句或case语句sql 2012
TestTable的
bld_type bld_2015 bld_2016 bld_2017
123 A A I
124 A A I
126 I A I
我有一个要比较一个变量,我从得到一个存储过程基于项目生产年份的bld_type的外部来源。
我试过if year = 2015 then select bld_type from testtable where bld_2015 = 'A'
,这工作正常,我甚至说其他和有不同的选择语句检查bld_2016 ='A'。
当我尝试把它放入另一个构造中时,就会出现这种情况。第一个例子将产生123,124。而我需要做的是,如果声明
if @TRM_type not in (my code from above)
begin @errorcount = @errorcount + 1 end
的代码添加到该换句话说,当我尝试if语句嵌入内部的if语句它不想工作。我是否以某种方式丢失了一个括号或结尾?
在此先感谢您的帮助。
我们需要看到您的代码有任何帮助您的机会。如果您要发布表格数据,则需要对其进行格式化,以便我们可以对其进行解码。你的问题的标题表明存在一个主要问题,因为你不能把一个if语句放在where子句中。 –