SELECT CASE
WHEN
CASE
WHEN `AA`>6
THEN `A`
ELSE NULL
END,
CASE
WHEN `BB`>6
THEN `B`
ELSE NULL
END,
CASE
WHEN `CC`>6
THEN `C`
ELSE NULL
END
THEN `NAME`
END
FROM TABLE;
此查询的目标是显示列 A 到 C 和名称。但如果 AC 为空,则不显示 NAME。我是 CASE 和一般“高级”查询的新手,所以如果我像傻瓜一样设置了这个,请随时告诉我。
谢谢阅读。
注意:不编译
我试图得到的逻辑是这样的:
if(
if(AA>6) then 1 else 0
OR
if(BB>6) then 1 else 0
OR
if(CC>6) then 1 else 0
etc,etc
) then 1 else 0
桌子:
Name A B C AA BB cc
--------------------------------------------------------
Name1 Data1 null Data3 3 n 15
Name2 null Data2 Data4 n 2 8
Name3 null Data2 Data4 n 2 2
如果仅显示值 gt 6,则需要输出:
Name A B C
-------------------------
Name1 Data3
Name2 Data4