首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于case语句的sql重写

用于case语句的sql重写
EN

Stack Overflow用户
提问于 2014-09-15 23:00:48
回答 1查看 174关注 0票数 0

我正在使用case语句,并想知道是否有更好的方法来编写它?

这就是我目前所拥有的,它是有效的:

代码语言:javascript
复制
select 
CASE WHEN ug.permissions = "" OR ug.permissions IS NULL
THEN
    g.permissions
ELSE
     ug.permissions 
END as permissions,
CASE WHEN ug.display = "" OR ug.display IS NULL
THEN
    g.display
ELSE
     ug.display 
END as display
from system.users_groups as ug
inner join system.groups as g on ug.group_id = g.id
where ug.user_id = ?

我在想更多类似的东西,但我对sql中的case语句几乎没有经验:

代码语言:javascript
复制
select 
CASE WHEN ug.permissions = "" OR ug.permissions IS NULL
THEN
    g.permissions,
    g.display
ELSE
    ug.permissions,
    ug.display
END
from system.users_groups as ug
inner join system.groups as g on ug.group_id = g.id
where ug.user_id = ?
EN

回答 1

Stack Overflow用户

发布于 2014-09-15 23:19:05

我更喜欢以下内容:

代码语言:javascript
复制
SELECT
  g.id,
  IFNULL(NULLIF(ug.permission, ''), g.permission),
  IFNULL(NULLIF(ug.display, ''), g.display)
FROM groups AS g

INNER JOIN users_group AS ug
ON ug.group_id = g.id

SQLFiddle

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25851047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档