case when的使用-解决分表查数据给某一个字段

Posted 丹丹Jordan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了case when的使用-解决分表查数据给某一个字段相关的知识,希望对你有一定的参考价值。

一个表中存的是目前有效的菜单,另外一个表中存的是有效菜单的历史更改数据

SELECT
msg.msg_id,
msg.from_user_name,
msg.msg_type,
msg.url,
msg.EVENT,
msg.event_key,
(
SELECT wm.name
FROM wx_menu wm
WHERE wm.url = msg.event_key
) as ticket,
case when (
SELECT wm.name
FROM wx_menu wm
WHERE wm.url = msg.event_key
) is null then
( SELECT wm_log.name
FROM wx_menu_log wm_log
WHERE wm_log.url = msg.event_key
order by created desc limit 1
)
else (
SELECT wm.name
FROM wx_menu wm
WHERE wm.url = msg.event_key
) end
as newTicket,
msg.text_match_flag,
msg.text_match_content,
msg.created
FROM wechat_message msg
where
msg.from_user_name="XXXXX"
order by msg.created desc

以上是关于case when的使用-解决分表查数据给某一个字段的主要内容,如果未能解决你的问题,请参考以下文章

oracle 增删改查

case when 用法

Oracle 条件索引 case when 报错解决方案

MySQL巧用sum,case...when...优化统计查询

在sql中case子句的两种形式

语法SQL中的case when then else end用法-解决一个字段根据条件取不同值