Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql中的Case语句_Sql_Loops_If Statement_Case - Fatal编程技术网

sql中的Case语句

sql中的Case语句,sql,loops,if-statement,case,Sql,Loops,If Statement,Case,我想在《SAS企业指南》中创建一个计算列,如果满足某些条件,它将显示汽车项目 共有75个汽车项目(T.T_项目),如挡风玻璃、轮胎、方向盘等 每个项目都有一个唯一的ID(T.TS_NUM),因此T.TS_NUM=1到T.TS_NUM=75 然后我想给每一辆新车贴上标签,比如labelNo_01到labelNo_75 因此,如果车辆类型为本田(T.TS_F_NUM=2),类型为掀背式(T.TS_type=I),T.TS_NUM=1,则新列名为LabelName_01,带有挡风玻璃等项目 例如,

我想在《SAS企业指南》中创建一个计算列,如果满足某些条件,它将显示汽车项目

  • 共有75个汽车项目(T.T_项目),如挡风玻璃、轮胎、方向盘等

  • 每个项目都有一个唯一的ID(T.TS_NUM),因此T.TS_NUM=1到T.TS_NUM=75

然后我想给每一辆新车贴上标签,比如labelNo_01到labelNo_75

因此,如果车辆类型为本田(T.TS_F_NUM=2),类型为掀背式(T.TS_type=I),T.TS_NUM=1,则新列名为LabelName_01,带有挡风玻璃等项目

例如,如果车辆类型发生变化,则车辆类型为丰田(T.TS_F_NUM=1) 但其余的都一样,它会给我75辆丰田汽车的项目

我的代码:

PROC SQL;
CREATE TABLE WORK.MotorVehicle AS 
SELECT 
T.TS_VEHICLE_RDES, 
/* FI_Label_01 */
Case When 
T.TS_F_NUM in (1,2) And  
T.TS_TYPE = I And 
T.TS_NUM =1 Then T.T_Item
else T.T_Item
End
AS FI_Label_01
FROM T.T_ITEM 
WHERE  T.TS_F_NUM = 41 
ORDER BY T.TS_NUM ;
QUIT;
上面的方法很简单并且有效,但我不确定如何添加Else或Else if语句。基本上,当我在where语句中使用上述代码和硬代码将车辆类型编码为1(丰田)时,它的工作状态和它只给我丰田,但它也给我所有类型,而不仅仅是掀背车。我想添加一个条件,它只提供类型掀背车,但我不知道如何或在上面的代码中,它会去哪里

另外,一个循环将有所帮助,因此我不必对每种车型重复该过程。希望这些信息有帮助

一些数据

T.TS_F_NUM      T.TS_TYPE       T.T_Item           T.TS_NUM
1               I               windscreen        1
2               I               side mirror       2
1               C               Side mirror       3
2               C               passenger door    4
1               I               dashboard         5
2               I               gear box          6 

是的,你非常接近,我有一些类似的代码,我的代码看起来像这样,并且可以工作:)
这显然有子规则,但所有的原则对其他都是一样的,我不认为有其他的如果

CASE WHEN
    RULE_1 = TRUE THEN 
        CASE WHEN RULE_2 = TRUE AND RULE_3 = TRUE THEN
            CASE WHEN 
                RULE_4 = TRUE
            THEN 
                ITEM_1
            ELSE 
                ITEM_2
            END
        ELSE
            CASE WHEN RULE_5 THEN
                ITEM_3
            ELSE
                CASE WHEN RULE_6 = TRUE THEN 
                    ITEM_4
                ELSE
                    ITEM_5
                END
            END 
        END
END

你能提供一些同样的样本数据吗?我想我们可以解码,但需要使用示例数据+1进行检查。AjithSasidharan希望他能用表架构和示例数据附加他的问题。@AjithSasidharan我在末尾添加了一些数据。希望这对我有所帮助。我尝试以不同的方式添加条件,但我没有完全正确。它几乎就在那里,但没有引用。@Beanie你为什么不用你到目前为止尝试过的内容更新这个问题,也许这会帮助我们进一步帮助你:)@bonCodigo,我已经添加了有效的代码,但也提供了所有类型的代码。希望这有帮助