在查询中选择两个

时间:2018-03-07 15:01:31

标签: sql sql-server

我想从表中创建一个值的两个值,并且已选择的任何值都将落入一个单独的变量中。

例如:

SELECT        id,username
FROM            New_Table
WHERE        (MONTH(date_en) = 01) AS month1 
WHERE        (MONTH(date_en) = 02) AS month2

我希望选择完成(MONTH (date_en) = 01) AS month1,并在查询中单独选择此(MONTH (date_en) = 02) AS month2

我该怎么办?

2 个答案:

答案 0 :(得分:3)

我认为您正在寻找下一个解决方案:

select
    id,
    username,
    CASE WHEN MONTH(date_en) = 01 THEN MONTH(date_en) ELSE '' END as month1,
    CASE WHEN MONTH(date_en) = 02 THEN MONTH(date_en) ELSE '' END as month2
from New_Table

因此,您将拥有填写的month1或month2的行,具体取决于月份。

示例中的双WHERE语法错误。如果在某些情况下您需要检查几个条件 - 了解如何使用关键字OR

WHERE id = 1 OR id = 2

关键字AND

WHERE id = 1 AND username = 'user1'

或关键字IN

WHERE id IN (1, 2)

答案 1 :(得分:0)

在SQL中,如果您有多个条件需要实现 ALL ,那么您可以使用AND。例如:

SELECT *
FROM Table
WHERE Column1 = 1
  AND Column2 = 'A';

这意味着需要满足这两个要求(Column1的值必须为1,而Column2的值必须为'A')。

如果只需要满足其中一项要求,则可以使用OR。例如:

SELECT *
FROM Table
WHERE Column1 = 1
  AND Column1 = 2;

这意味着将返回Column1的值为12的行。同样,这些表达式引用相同的列,可以使用IN运算符缩短查询:

SELECT *
FROM Table
WHERE Column1 IN (1,2);

SQL中有许多运算符,但如果您不了解这些运算符,我认为您需要先考虑做一些培训/学习;因为你似乎对这门语言很陌生。