除非此处的所有 CASE
语句都是 True,否则它会为整个 Options
列返回 Null
。
我想不通的是如何返回任何 True CASE
语句,即:如果 Col2,Col4 不为空,则只返回那些值。我不知道还能尝试什么,帮忙?
SELECT
CASE WHEN Col1 Is Not Null THEN '<li>' + Col1 + '</li>' END +
CASE WHEN Col2 Is Not Null THEN '<li>' + Col2 + '</li>' END +
CASE WHEN Col3 Is Not Null THEN '<li>' + Col3 + '</li>' END +
CASE WHEN Col4 Is Not Null THEN '<li>' + Col4 + '</li>' END Options
FROM TABLE
同样,问题是除非找到所有 Case
语句,否则它会为 Options
列返回 Null。
最佳答案
像这样:
SELECT
CASE WHEN Col1 Is Not Null THEN '<li>' + Col1 + '</li>' ELSE '' END +
CASE WHEN Col2 Is Not Null THEN '<li>' + Col2 + '</li>' ELSE '' END +
CASE WHEN Col3 Is Not Null THEN '<li>' + Col3 + '</li>' ELSE '' END +
CASE WHEN Col4 Is Not Null THEN '<li>' + Col4 + '</li>' ELSE '' END Options
FROM TABLE
关于sql-server - 在一列中返回多个 CASE 语句中的任何一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16351293/