是否有可能在case语句中包含case语句 [英] Is it possible have case statement inside a case statement
本文介绍了是否有可能在case语句中包含case语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以在when in case语句中包含case语句。有点棘手的问题。但它就像在case语句的when子句上有一个case语句一样简单。
Quote:在预期条件的上下文中指定的非布尔类型的表达式
我不确定我到目前为止所做的事情是否会奏效......但我不是那样工作的。
我尝试过的事情:
(情况@variable = 1那么(例如情况)(tbl_column_id时的情况) IN(SELECT tbl_column_id FROM Table THEN 1 END))AND(CASE WHEN othr_tbl_column_id NOT IN(SELECT othr_tbl_column_id FROM OtherTable THEN 0 END))THEN 1 ELSE 0 END)
END)
解决方案
是的,您可以使用嵌套的case语句,但它真正快速实现丑陋。试试这个:
CASE WHEN @ variable = 1
那么( CASE WHEN CASE WHEN tbl_column_id IN ( SELECT tbl_column_id FROM 表)
那么 1
ELSE 0
END
AND CASE WHEN othr_tbl_column_id NOT IN ( SELECT othr_tbl_column_id FROM OtherTable)
那么 0
ELSE 1
END
ELSE 0 END
尝试这样的事情:
CASE
WHEN @ variable = 1 那么 CASE
<温泉n class =code-keyword> WHEN tbl_column_id IN ( SELECT tbl_column_id FROM 表) AND othr_tbl_column_id IN ( SELECT othr_tbl_column_id FROM OtherTable)那么 1
ELSE 0
END
END
Is it possible to have a case statement inside a when in case statement. Kinda tricky question. But it is as simple as having a case statement on the when clause of a case statement.
Quote:An expression of non-boolean type specified in a context where a condition is expected
Am not really sure if what I've done so far will work.. but I wan't that to work that way.
What I have tried:
(CASE WHEN @variable = 1 THEN (CASE WHEN (CASE WHEN tbl_column_id IN(SELECT tbl_column_id FROM Table THEN 1 END)) AND (CASE WHEN othr_tbl_column_id NOT IN(SELECT othr_tbl_column_id FROM OtherTable THEN 0 END)) THEN 1 ELSE 0 END) END)
解决方案
Yes, you can use nested case statements, but it gets real ugly real fast. Try this:
CASE WHEN @variable = 1 THEN (CASE WHEN CASE WHEN tbl_column_id IN(SELECT tbl_column_id FROM Table) THEN 1 ELSE 0 END AND CASE WHEN othr_tbl_column_id NOT IN(SELECT othr_tbl_column_id FROM OtherTable) THEN 0 ELSE 1 END ELSE 0 END
Try something like this:
CASE WHEN @variable = 1 THEN CASE WHEN tbl_column_id IN (SELECT tbl_column_id FROM Table) AND othr_tbl_column_id IN (SELECT othr_tbl_column_id FROM OtherTable) THEN 1 ELSE 0 END END
这篇关于是否有可能在case语句中包含case语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文