Sql server SQL查询中的两个转义字符
因此,我在记录中有一组字符串,包括“/”字符,例如:Sql server SQL查询中的两个转义字符,sql-server,syntax,count,escaping,special-characters,Sql Server,Syntax,Count,Escaping,Special Characters,因此,我在记录中有一组字符串,包括“/”字符,例如: RECORD_NAME Foo bar Foo/bar Fo/o/bar 还有几百万张唱片 我想说的是,用2个“/”字符计算记录的数量 所以要想找到一个,我会说: select count(*) from my_table where record_name like '%[/]%' 这可能会让所有的人都有一个“/”在那里 我如何计算带有两个斜杠的斜杠?您可以在SQL查询中包含正则表达式吗?这应该可以: select count(*) f
RECORD_NAME
Foo bar
Foo/bar
Fo/o/bar
还有几百万张唱片
我想说的是,用2个“/”字符计算记录的数量
所以要想找到一个,我会说:
select count(*) from my_table where record_name like '%[/]%'
这可能会让所有的人都有一个“/”在那里
我如何计算带有两个斜杠的斜杠?您可以在SQL查询中包含正则表达式吗?这应该可以:
select count(*) from my_table where record_name like '%/%/%' and record_name not like '%/%/%/%'
通过这种方式,您将始终包含包含两个
/
的行,但如果包含三个或更多的,不相似的将避免它们很难准确确定您要查找的内容,但是如果您试图区分包含1、2或n个/
字符的行:
DECLARE @x TABLE(y VARCHAR(32));
INSERT @x SELECT 'Foo bar0'
UNION ALL SELECT 'Foo/bar1'
UNION ALL SELECT 'Fo/o/bar2'
UNION ALL SELECT 'Fo/obar1'
UNION ALL SELECT 'Fo/o//bar3';
;WITH x(length) AS
(
SELECT LEN(y) - LEN(REPLACE(y, '/', ''))
FROM @x WHERE y LIKE '%[/]%'
)
SELECT length, [count] = COUNT(*)
FROM x GROUP BY length;
结果:
length count
------ -----
1 2
2 1
3 1
是的,将避免使用三个或更多/:)