我对 SQL 还很陌生,希望有人能帮助我解决这个问题。
我有一个存储过程,我想根据列是否包含特定国家/地区来传递不同的值。
到目前为止,我在检查与特定数字或值的匹配时仅使用了CASE
,因此我不确定这一点。
有人可以告诉我以下内容是否有效且正确,或者让我知道如何正确编写此内容(仅针对括号中的部分)?
(CASE countries
WHEN LIKE '%'+@selCountry+'%' THEN 'national'
ELSE 'regional') AS validity
注释: @selCountry 是国家的变量名,国家可以为空,也可以为一个国家或多个国家,以逗号和空格分隔。 基本上我只是想检查国家/地区是否包含@selCountry,如果是,则将有效性设置为“国家”。
最佳答案
这是您需要的语法:
CASE WHEN countries LIKE '%'+@selCountry+'%' THEN 'national' ELSE 'regional' END
不过,根据您原来的问题,我会以不同的方式解决它,将 @selcountry 的内容拆分为表格形式并加入其中。
关于SQL Server : use CASE with LIKE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23513869/