I’m trying to come up with a query in which it’s going to filter based on a substring. The substring operation is working fine if I use it as a select statement, but not when I try to use it for filtering
x
-- 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');
If I run the query without the where section, the data is parsed correctly, however when using the where I got no results
Advertisement
Answer
Is this the logic you want?
WHERE SUBSTRING(name, 8, LEN(name)) IN ('12', '123')
But I think I would be more inclined to write this as:
where name like '%[_]12'] or
name like '%[_]123'
I just think the intent is clearer.