如何使用案例语句获取单个记录

维姬
CREATE TABLE test_table (
    e_id     NUMBER(10),
    e_value  NUMBER(10)
);

INSERT INTO test_table VALUES(11,123);
INSERT INTO test_table VALUES(11,123);
INSERT INTO test_table VALUES(11,null);

COMMIT;

test_table如果任何一个值null在列中,我想从表中获取单个记录,e_value那么它应该打印No其他Yes

我的尝试:

SELECT e_id,
CASE 
WHEN e_value IS NULL THEN 'No'
ELSE 'Yes'
END is_answer
FROM test_table;

电流输出:

+------+-----------+
| e_id | is_answer |
+------+-----------+
|   11 | Yes       |
|   11 | Yes       |
|   11 | No        |
+------+-----------+

预期输出:

+------+-----------+
| e_id | is_answer |
+------+-----------+
|   11 | No        |
+------+-----------+

MT0

e_value排序NULLS FIRST,只得到第一行:

SELECT e_id,
       CASE WHEN e_value IS NULL THEN 'No' ELSE 'Yes' END is_answer
FROM   test_table
ORDER BY e_value NULLS FIRST
FETCH FIRST ROW ONLY;

其中,对于样本数据,输出:

E_ID IS_ANSWER
11

db<>在这里摆弄

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章