繁体   English   中英

带SELECT的子查询中的CASE

[英]CASE in sub query with SELECT

这是我写的查询

SELECT id, name, (SELECT is_enable FROM customers WHERE id=table_one.id) AS some_tag FROM table_one;

上面的查询返回这样的日期

    ID NAME                       SOME_TAG
     4 name 1                          0
     3 name 2                          0
     1 name 3                          1

我正在尝试在上面的查询中放入一个CASE,这样我得到SOME_TAG的值为1时为“是”,0时为“否”但到目前为止没有运气。 任何帮助/线索将不胜感激! 谢谢!

到目前为止我试过这个

select id, name, (select is_enable case when is_enable is not null then "No" else "Yes" end from customers where id=table_one.id) as some_tag from table_one;

您可以使用连接而不是子查询...然后这就是案例的工作方式。

SELECT 
    t.id, 
    t.name, 
    case when c.is_enabled = 1 then 'Yes' else 'No' end 
from 
    table_one t
    left join customers c on
    c.id = t.id 

下面的代码也适用于您的问题

SELECT 
  id, 
  name, 
  (CASE is_enable 
    WHEN 1 THEN 'YES'
    WHEN 0 THEN 'NO' 
  END) AS TAG
FROM ( SELECT id, name, (SELECT is_enable FROM customers WHERE id=table_one.id) AS some_tag FROM table_one );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM