CASE WHEN显示错误

时间:2016-07-11 08:44:46

标签: sql sas

我正在使用Microsoft SQL Management Studio,我试图使用CASE WHEN。这是我的问题,我的代码如下:

SELECT CASE  WHEN INCIDENT_RK = 52377
THEN  CASE_RK = NULL
ELSE CASE_RK
END
)
FROM ABC    ;

我想要做的是,当INCIDENT_RK为52377时,然后将CASE_RK设置为NULL,否则返回原来的CASE_RK。

它应该非常直接,但是,在INCIDENT_RK,=,ELSE下有红色下划线,) 我发现这很奇怪因为我今天做了一个案例,而且工作正常。 以下是工作代码:

CASE WHEN CASE_RK NOT BETWEEN 1 AND 2               
        THEN CASE_RK+75961              
        ELSE CASE_RK                
        END             
        )       
FROM ABC    

需要你的建议

编辑2: 我也试过以下代码,但仍然没有运气:

CASE WHEN INCIDENT_RK = '52080'             
        THEN NULL               
        ELSE CASE_RK                
        END AS CASE_RK  

        )       
FROM ABC

编辑3:我试过这段代码。

SELECT CASE WHEN INCIDENT_RK = 52080 THEN NULL ELSE CASE_RK END AS CASE_RK  FROM ABC

最后可以执行。但是,我只有1行INCIDENT_RK = 100但有超过50个CASE_RK被设置为NULL

4 个答案:

答案 0 :(得分:1)

您的案例语法看起来不正确。

案例返回一个陈述,它不分配陈述 请注意,您的示例与不合作的示例之间的区别在于您未尝试分配CASE_RK = NULL

的示例之间的区别

因此,根据您查询的其余代码,它应该是以下内容:

SELECT CASE WHEN INCIDENT_RK = 52377
  THEN  NULL
  ELSE CASE_RK
END AS CASE_RK    
FROM ABC    

答案 1 :(得分:0)

删除了大括号,

var Anchor = s.Cells[2].FindControl("TheAnchor") as AnchorTag;

Anchor.Attributes.Remove("href");

Response.Write("<script>alert('" + Anchor.Text + "');</script>");

答案 2 :(得分:0)

你有一些无效的大括号。您也不希望将CASE_RK设置为NULL,您只想显示NULL。

SELECT CASE_RK = CASE WHEN INCIDENT_RK = 52377
   THEN  NULL
   ELSE CASE_RK
END
FROM ABC;

答案 3 :(得分:0)

您的查询中的语法似乎不正确。您需要从查询中删除紧密括号。请尝试以下查询:

SELECT CASE  WHEN INCIDENT_RK = 52377
THEN  CASE_RK = NULL
ELSE CASE_RK
END
FROM ABC;