gpt4 book ai didi

mysql - 在 Mysql 中使用 CASE 将值设置为别名字段

转载 作者:行者123 更新时间:2023-12-01 00:36:33 27 4
gpt4 key购买 nike

我在 Mysql 中有 2 个表,如下所示

表一

   ID   YEARMONTH
------------------
1 201210
2 201211
3 201212

表2

  ID  YEARMONTH  GRADE  DESIG
--------------------------------
1 201210 G1 NULL
2 201210 G1 D2
3 201212 G1 D1

我正在尝试在 table1 中设置一个新字段(名为 FLAG),如果 t1.YEARMONTH 的行存在于 T2 中则为 Y,否则为 N

我想要在 T1 中得到以下结果

ID YEARMONTH FLAG
---------------------
1 201210 Y
2 201211 N
3 201212 Y

我尝试了以下查询

SELECT
T1.ID,
T1.YEARMONTH,
CASE COUNT(T2.ID)
WHEN (SELECT
COUNT(T2.ID)
FROM TABLE2 T2)
> 0 THEN 'Y'
ELSE 'N'
END AS flag
FROM TABLE1 T1,
table2 T2;

但它产生以下输出

 ID   YEARMONTH  FLAG
---------------------------
1 201210 N

我不知道我的错误在哪里。任何帮助将不胜感激。

最佳答案

尝试使用以下查询:

SELECT
T1.ID, T1.YEARMONTH,
(CASE
WHEN COUNT(T2.ID) > 0 THEN 'Y'
ELSE 'N'
END) AS FLAG
FROM TABLE1 T1
LEFT JOIN TABLE2 T2
ON T1.YEARMONTH = T2.YEARMONTH
GROUP BY T1.ID, T1.YEARMONTH

您可以在此处查看所需的输出 http://sqlfiddle.com/#!9/162855/12

关于mysql - 在 Mysql 中使用 CASE 将值设置为别名字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47917639/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com