Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL查询中的两个转义字符_Sql Server_Syntax_Count_Escaping_Special Characters - Fatal编程技术网

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

是的,将避免使用三个或更多/:)