SQL Server : use CASE with LIKE

标签 sql sql-server stored-procedures case sql-like

我对 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/

相关文章:

sql - 如何计算 oracle 10g 中的列值?

sql-server - AWS DMS - 从 SQL Server 迁移到 S3 存储桶。如何在 .csv 中添加标题?

sql - 你可以在 MySql 中使用自动增量而不是它是主键吗

java - 如何从结果集中获取日期

sql - 在 SQL 2005 和 SQL 2012 上使用 ELEMENTS XSINIL 时的不同行为

sql-server - SQL Server过程优化测试模式改进

mysql - mysql中的计算字段?

MySQL:如果在存储过程中

sql - 如何分配变量以插入到 SQL Server 中的表中?

android - 满足条件时更改列的值