SQL中甚至是奇怪的

时间:2014-02-24 12:39:32

标签: sql sql-server tsql select

这是表结构

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

4 个答案:

答案 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)