[英]SQL Server - Use substring in where clause
我正在尝试提出一个查询,其中将基于子字符串进行过滤。 如果将子字符串操作用作选择语句,则该子字符串操作工作正常,但是当我尝试将其用于过滤时却无法正常工作
-- These are some examples of the data I have
--cust_12
--cust_123
--temp_db
SELECT SUBSTRING(name,8,LEN(name)) AS ClientId, name FROM sys.databases
WHERE SUBSTRING(name,8,LEN(name)) IN ('12, 123');
如果我不带where节运行查询,则数据将正确解析,但是使用where却没有结果
这是您想要的逻辑吗?
WHERE SUBSTRING(name, 8, LEN(name)) IN ('12', '123')
但是我想我会更倾向于这样写:
where name like '%[_]12'] or
name like '%[_]123'
我只是认为目的更明确。
您的报价有误:
SELECT SUBSTRING(name,8,LEN(name)) AS ClientId, name FROM sys.databases
WHERE SUBSTRING(name,8,LEN(name)) IN ('12, 123');
应该:
SELECT SUBSTRING(name,8,LEN(name)) AS ClientId, name FROM sys.databases
WHERE SUBSTRING(name,8,LEN(name)) IN ('12', '123');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.