select case when then
时间: 2023-10-11 21:13:46 浏览: 97
在SQL中,SELECT CASE WHEN THEN语句用于在查询结果中根据条件返回不同的值。它可以根据给定的条件判断并返回相应的结果。
举个例子,可以使用SELECT CASE WHEN THEN语句来判断两个表之间的匹配情况。使用EXISTS方法,可以检查在tbl_a和tbl_b中是否存在具有相同键值的记录,如果存在则返回"matched",如果不存在则返回"unmatched"。具体语法如下所示:
SELECT keycol,
CASE WHEN EXISTS (SELECT * FROM tbl_b WHERE tbl_a.keycol = tbl_b.keycol)
THEN 'matched'
ELSE 'unmatched'
END AS label
FROM tbl_a;
另外,可以使用SELECT CASE WHEN THEN语句来解决复杂的条件问题。例如,在studentclass表中,我们想根据条件来选择主要班级。如果一个学生只有一个班级,则返回最大的class_id;如果一个学生有多个班级,并且其中有一个主要班级,则返回主要班级的class_id;否则返回null。具体语法如下所示:
SELECT std_id,
CASE WHEN COUNT(*) = 1
THEN MAX(class_id)
ELSE MAX(CASE WHEN main_class_flg = 'y' THEN class_id ELSE NULL END)
END AS main_class
FROM studentclass
GROUP BY std_id;
通过使用SELECT CASE WHEN THEN语句,我们可以根据不同的条件返回不同的结果,从而灵活地进行查询和处理数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [sql语句中case when及select case when的用法](https://blog.csdn.net/wh_07/article/details/103292280)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文