这是表结构
id
1
2
3
4
5
6
我需要这样的结果
id even odd
1 0 1
2 1 0
3 0 1
4 1 0
5 0 1
6 1 0
我试过
select id %2=0 then 1 else 0 end or id%2 <>0 then 1 else 0 odd
from table
答案 0 :(得分:9)
怎么样
select
id,
~id & 1,
id & 1
from t
答案 1 :(得分:1)
查看CASE
关键字。它与您在SELECT
语句中尝试的操作非常相似。此外,如果要选择多个列,请用逗号分隔。 OR
关键字用于组合查询中的逻辑条件,而不是用于指定多个列。
如何在查询中使用CASE
的示例如下:
SELECT id,
CASE WHEN id %2=0 THEN 1 ELSE 0 END AS Even,
[column2]
FROM [TableName]
答案 2 :(得分:1)
表结构只是Id?
你可以试试这个! select *,
case when id %2=0 then 1 else 0 end as even,
case when id %2 <>0 then 1 else 0 end as odd
from table
答案 3 :(得分:1)
你有正确的想法,但你的语法有点偏。我会使用CASE
语句创建even
列,然后相应地计算odd
:
SELECT id, even, ABS(even - 1) AS odd
FROM (SELECT id, CASE WHEN id % 2 = 0 THEN 1 ELSE 0 END AS even
FROM my_table)