我想从表中创建一个值的两个值,并且已选择的任何值都将落入一个单独的变量中。
例如:
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
我该怎么办?
答案 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
的值为1
或2
的行。同样,这些表达式引用相同的列,可以使用IN
运算符缩短查询:
SELECT *
FROM Table
WHERE Column1 IN (1,2);
SQL中有许多运算符,但如果您不了解这些运算符,我认为您需要先考虑做一些培训/学习;因为你似乎对这门语言很陌生。