首页 > 其他分享 >使用 COALESCE 代替 CASE WHEN

使用 COALESCE 代替 CASE WHEN

时间:2024-07-31 14:19:40浏览次数:7  
标签:CASE GROUP max WHEN COALESCE role user id CONCAT

SELECT COUNT(*) FROM (SELECT max(u.id) id, max(u.real_Name) AS realName, max(u.account) account, max(u.remark) remark, max(u.status) status, max(u.mobile_Status) mobileStatus, CASE WHEN GROUP_CONCAT(r.id) IS NULL THEN "-" ELSE GROUP_CONCAT(r.id) END AS userRoles, CASE WHEN GROUP_CONCAT(r.role_name) IS NULL THEN "-" ELSE GROUP_CONCAT(r.role_name) END AS userRoleNames FROM t_user_info u LEFT JOIN t_ref_role_user ru ON ru.user_id = u.id LEFT JOIN t_role_info r ON r.id = ru.role_id LEFT JOIN t_ref_user_tenant ut ON ut.user_id = u.id WHERE u.deleted = '0' GROUP BY u.id ORDER BY u.create_time DESC)

 

改为

SELECT COUNT(*) FROM (
SELECT
max(u.id) id,
max(u.real_Name) AS realName,
max(u.account) account,
max(u.remark) remark,
max(u.status) status,
max(u.mobile_Status) mobileStatus,
COALESCE(GROUP_CONCAT(r.id), '-') AS userRoles,
COALESCE(GROUP_CONCAT(r.role_name), '-') AS userRoleNames
FROM t_user_info u
LEFT JOIN t_ref_role_user ru ON ru.user_id = u.id
LEFT JOIN t_role_info r ON r.id = ru.role_id
LEFT JOIN t_ref_user_tenant ut ON ut.user_id = u.id
WHERE u.deleted = '0'
GROUP BY u.id
ORDER BY u.create_time DESC
) TOTAL;

标签:CASE,GROUP,max,WHEN,COALESCE,role,user,id,CONCAT
From: https://www.cnblogs.com/zqlmianshi/p/18334501

相关文章

  • Task.waitALL 和Task.WhenALL有什么区别?如何使用
    Task.WaitAll和Task.WhenAll是两个不同的方法,它们都用于等待一组任务完成,但它们之间存在一些重要的区别。Task.WaitAllWaitAll是一个同步方法,它会阻塞当前线程直到所有指定的任务完成。这意味着如果你在一个需要响应用户输入的线程上调用WaitAll,那么这个线程将会停止响应,直......
  • mysqldump: Got error: 1066: Not unique table/alias: 'act_evt_log' when using LOC
    先说解决办法:执行下面语句mysqldump-ushooter-p123123--single-transactionfd>fd.sql  lower_case_table_names区分大小写设置注意:此参数不可以动态修改,必须重启数据库 12341、参数含义:lower_case_table_names=1  表名存储在磁盘是小写的,但是比......
  • for、while、DoWhile、SwitchCase循环语句
    一、for循环语句for循环组成:4部分 (先判断、再执行)1)inti=0;初始化语句,只在第一次循环时执行2)i<length;判断条件,成立才执行循环体,不成立跳转for循环3)循环体,for执行几次?内含意思for循环体执行几次?4)累加或累减语句for(inti=0;i<3;i++){Console.WriteLin......
  • 在K8S中,replicaset 和deploy有何区别?
    在Kubernetes(K8S)中,ReplicaSet和Deployment是两种非常重要的资源对象,它们都用于管理Pod的副本数量。尽管它们有一些相似之处,但在功能和用途上还是存在显著差异。下面详细介绍它们之间的区别:1.ReplicaSet定义:ReplicaSet是一种确保运行指定数量的Pod副本的Kuber......
  • Python Match Case:检查未知长度的可迭代内部的类型
    我想使用匹配大小写检查一个未知长度的迭代(假设为list)仅包含给定类型(假设为float)(还有其他情况,只有这个给我带来了问题)。case[*elems]ifall([isinstance(elem,float)foreleminelems]):returnnum这个似乎可行,但确实很不Pythony。看来应该有更简单的方法。......
  • 记一个引起MYSQL死锁Deadlock found when trying to get lock; try restarting transac
    一、记一个引起MYSQL死锁Deadlockfoundwhentryingtogetlock;tryrestartingtransaction的例子  今天在尝试MYSQL事务的时候,这种情况总会引起死锁,不知道为什么,我使用的测试MYSQL表的创建SQL如下:CREATETABLE`user`(`id`int(10)unsignedNOTNULLAUTO_INC......
  • CSS Case Insensitive Attribute Selector All In One
    CSSCaseInsensitiveAttributeSelectorAllInOneCSS大小写敏感的属性选择器/*casesensitive,onlymatches"case_sensitive"*/[class=case_sensitive]{background:pink;}Addingaspacebeforetheiflagtotheattributeselectorbracketswillmak......
  • SQL中的case when then else end用法
    Case具有两种格式。简单Case函数和Case搜索函数。1--简单Case函数2CASEsex3WHEN'1'THEN'男'4WHEN'2'THEN'女'5ELSE'其他'END6--Case搜索函数7CASEWHENsex='1'THEN'男'8W......
  • Java性能优化-switch-case和if-else速度性能对比,到底谁快?
    场景Java中使用JMH(JavaMicrobenchmarkHarness微基准测试框架)进行性能测试和优化:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/131723751参考以上性能测试工具的使用。下面针对Java中对switch-case和if-else在速度方面的性能做测试。注:博客:https://blog......
  • 【基于R语言群体遗传学】-15-溯祖理论coalescence
    在群体遗传学中,一个非常重要的概念是关注谱系的汇聚(遗传线索的汇合),当我们回溯过去几代人口时。在之前的博客中,我们几乎只处理了随时间推移基因变化的“正向”模拟。群体遗传学_tRNA做科研的博客-CSDN博客然而,通过时间逆向建模等位基因频率变化不仅是一个有趣的视角,当你知道......