Table1
ID
001
002
001
001
001
...
我想查看来自id
的{{1}},其中id应该是偶数。如果table1
不同,那么我需要返回id
其他2
如何为此编写查询?
答案 0 :(得分:2)
ID
s
SELECT (CASE WHEN [ID]%2 = 1 THEN 1 ELSE 2 END)
FROM [table]
ID
COUNT
:
SELECT (CASE WHEN COUNT([ID])%2 = 1 THEN 1 ELSE 2 END)
FROM [table]
GROUP BY [ID]
答案 1 :(得分:0)
请检查一下。
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
答案 2 :(得分:0)
如果我正确理解了这个问题,则此处不需要CASE
语句。我假设您希望在2
为偶数时返回ID
,在1
为奇数时返回ID
?只要ID
列的值中没有任何非数字字符,您就可以执行以下操作:
SELECT [ID], 2 - CAST([ID] AS int) % 2
FROM Table1
如果您希望2
在ID
为奇数时返回,1
在偶数时返回(抱歉,问题尚不清楚),那么您可以执行此操作:
SELECT [ID], CAST([ID] AS int) % 2 + 1
FROM Table1