Sql 如何获取单行中不匹配的记录

Sql 如何获取单行中不匹配的记录,sql,sql-server,Sql,Sql Server,表1 ID 001 002 001 001 001 ... 我想检查table1中的id,其中id应该是偶数。如果id不同,那么我需要返回2else1 如何为此编写查询?forIDs SELECT (CASE WHEN [ID]%2 = 1 THEN 1 ELSE 2 END) FROM [table] 对于ID计数: SELECT (CASE WHEN COUNT([ID])%2 = 1 THEN 1 ELSE 2 END) FROM [table] GROUP BY [ID

表1

ID

001
002
001
001
001

...
我想检查
table1
中的
id
,其中id应该是偶数。如果
id
不同,那么我需要返回
2
else
1

如何为此编写查询?

for
ID
s

SELECT (CASE WHEN [ID]%2 = 1 THEN 1 ELSE 2 END) 
FROM [table]
对于
ID
计数

 SELECT (CASE WHEN COUNT([ID])%2 = 1 THEN 1 ELSE 2 END)
 FROM [table] 
 GROUP BY [ID]
请检查这个

 declare @t table (id varchar(50))

insert into @t values('001'),('001'),('002'),('002'),('001'),('002'),('002')

SELECT 
    CASE WHEN cast( [ID] as int) %2 = 1 THEN 1 ELSE 2 END oddOrEven
FROM @t

--for counting
;with cte as
(
    SELECT [ID]%2 value,
        CASE cast( [ID] as int) %2 when 1 THEN count(1) else count(2) END  oddCount         
    FROM @t
        group by id
)
select * from cte   

如果我正确理解了问题,这里不需要陈述
案例。我假设当
ID
为偶数时,您希望返回
2
,当
ID
为奇数时,您希望返回
1
?只要
ID
列的值中没有任何非数字字符,就可以执行以下操作:

SELECT [ID], 2 - CAST([ID] AS int) % 2
  FROM Table1
如果您想在
ID
为奇数时返回
2
,而
1
为偶数时返回(很抱歉,问题不清楚),则可以执行以下操作:

SELECT [ID], CAST([ID] AS int) % 2 + 1
  FROM Table1

您想查找“偶数”Id还是偶数出现的Id?“在单行中获取不匹配的记录”您的标题与您的问题有什么关系?