SQL Server:使用CASE和LIKE

Mik*_*ike 19 sql sql-server stored-procedures case sql-like

我对SQL很陌生,希望有人可以帮助我.

我有一个存储过程,我想根据列是否包含某个国家/地区来传递不同的值.

到目前为止,我只CASE在检查具有特定数字或值的匹配时使用,所以我不确定这个.有人可以告诉我以下是否有效和正确或让我知道如何正确地写这个(只是关于括号中的部分)?

(CASE countries
     WHEN LIKE '%'+@selCountry+'%' THEN 'national'
     ELSE 'regional') AS validity
Run Code Online (Sandbox Code Playgroud)

注意: @selCountry是国家/地区的变量名称,国家/地区可以为空,一个国家或多个国家/地区以逗号和空格分隔.基本上我只想检查国家是否包含@selCountry,如果是,则将有效性设置为"国家".

dea*_*ean 35

这是您需要的语法:

CASE WHEN countries LIKE '%'+@selCountry+'%' THEN 'national' ELSE 'regional' END
Run Code Online (Sandbox Code Playgroud)

虽然,根据您的原始问题,我会以不同的方式解决它,将@selcountry的内容拆分为表格形式并加入其中.


Rag*_*ull 6

添加END之前的别名。

CASE WHEN countries LIKE '%'+@selCountry+'%' THEN 'national' 
     ELSE 'regional' 
     END 
AS validity
Run Code Online (Sandbox Code Playgroud)