sql - 在 SQL Server 中使用逗号分隔值的 Like 运算符
问题描述
例如,这是我原来的表
SELECT id, testName FROM tblTest1
每当我的逗号分隔值以正确的方式出现时,我就会根据我的原始表格得到结果。
见下图:
DECLARE @Test VARCHAR(100)
SET @Test='General, Narcotic'
SELECT id, testName
FROM tblTest1 a
WHERE ISNULL(a.testName, '') LIKE (CASE WHEN isnull(@Test,'') = '' THEN isnull(a.testName,'')
ELSE '%'+@Test+'%' END)
但是当我改变逗号分隔值的原始位置时,我没有得到任何输出。
见下图:
DECLARE @Test VARCHAR(100)
SET @Test='Narcotic,General'
SELECT id, testName FROM tblTest1 a
WHERE isnull(a.testName,'') Like (CASE WHEN isnull(@Test,'') = '' THEN isnull(a.testName,'')
ELSE '%'+@Test+'%' END)
所以,我想要查询,只要我的逗号分隔字符串在该行中,我想选择所有行(包括不基于原始表的更改逗号分隔值,@paramer
然后选择所有行)
解决方案
你可以尝试IS NULL
和OR
条件
SELECT id, testName
FROM tblTest1 a
WHERE (@test IS NULL OR a.testName LIKE '%'+@test+'%')
推荐阅读
- javascript - 为什么/如何'this'关键字指的是事件对象而不是全局对象,因为我在函数中使用了'this'关键字
- java - 如何在 Java 客户端代码中为 Graphql 执行突变?
- python - 安装 ipykernel 后 Jupyter 停止工作
- junit - 单元测试。模拟 FileOutPutStream 和云存储
- javascript - Bootstrap 5 模态弹出窗口未从 JavaScript 激活
- csv - Magento 2 System > Export > Product “状态”列在哪里?
- sql-server - TSQL:如何通过将数据组合到单个 XML 列中来展平表
- javascript - JavaScript 中其他浏览器的“new Date().getVarDate()”的替代方法
- jenkins - 在 post 步骤中并行执行
- node.js - NodeJS ssh2 以前的命令持续存在