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
else1
如何为此编写查询?forID
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?“在单行中获取不匹配的记录”您的标题与您的问题有什么关系?