SQL 2005我可以在case语句中使用关键字

Pau*_*aul 14 sql t-sql sql-server-2005

我需要一个允许部分匹配的case语句.我收到语法错误,但我想知道是否有类似的东西是可能的.如果没有,我的辅助解决方案是重写为游标...示例:

SELECT CASE ColumnName
           WHEN 'value1' THEN 'answer1'
           WHEN 'value2' THEN 'answer2'
           WHEN LIKE '%TEST%' THEN 'answer3'
       END AS Answer
FROM TableName
Run Code Online (Sandbox Code Playgroud)

SQL*_*ace 32

试试这个

SELECT CASE 
           WHEN ColumnName = 'value1' THEN 'answer1'
           WHEN ColumnName = 'value2' THEN 'answer2'
           WHEN ColumnName LIKE '%TEST%' THEN 'answer3'
       END AS Answer
FROM TableName
Run Code Online (Sandbox Code Playgroud)

你可以运行的例子

SELECT name,CASE 
           WHEN Name = 'sysobjects' THEN 'answer1'
           WHEN Name = 'syscols' THEN 'answer2'
           WHEN Name LIKE '%p%' THEN 'answer3'
           ELSE 'unknown'
       END AS Answer
FROM sysobjects
Run Code Online (Sandbox Code Playgroud)


Wid*_*dor 7

需要使用略有不同的CASE语法:

SELECT CASE WHEN ColumnName LIKE 'value1' THEN 'answer1'
            WHEN ColumnName LIKE 'value2' THEN 'answer2'
            WHEN ColumnName LIKE '%TEST%' THEN 'answer3'
ELSE 'not like any of them' END [Answer]
FROM TableName
Run Code Online (Sandbox Code Playgroud)