我正在使用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
答案 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;