这适用于SQL-Server 2008.这是一个示例列:
-----------------
| strings |
-----------------
| string1 |
-----------------
| string2 |
-----------------
| string3 |
-----------------
| string4 |
-----------------
| ... |
-----------------
什么是查询来计算不是“string1”,“string2”或“string3”的任何字符串的出现次数?
答案 0 :(得分:5)
SELECT strings, COUNT(*) As Appearances
FROM tbl
WHERE strings NOT IN('string1', 'string2', 'string3')
GROUP BY strings
答案 1 :(得分:2)
不清楚你想要什么
计算任何不是“string1”,“string2”或“string3”的字符串的出现次数?
如果你想要的字符串数量不是'string1','string2','string3'那么你只需要
SELECT COUNT(*)
FROM Table1
WHERE strings NOT IN('string1', 'string2', 'string3')
如果您希望每个字符串的实例数不是'string1','string2','string3',那么您需要添加group by strings
之类的{{1}} }}
答案 2 :(得分:1)
这将产生一个包含两列的结果,第一列将具有该字符串,第二列将具有该字符串的计数。使用where子句过滤掉你不想要的字符串。
SELECT strings, COUNT(strings)
FROM table_name
WHERE strings <> 'string1'
GROUP BY strings
答案 3 :(得分:0)
使用关系差异运算符EXCEPT
,例如
WITH strings
AS
(
SELECT *
FROM (
VALUES ( 'string1' ),
( 'string2' ),
( 'string3' ),
( 'string4' )
) AS T ( string )
)
SELECT text_value
FROM YourTable
EXCEPT
SELECT string
FROM strings;