【发布时间】:2017-07-18 15:03:24
【问题描述】:
我正在使用 SQL Developer
我需要接受用户输入为 Y 或 N。
如果输入了 N,我需要将其转换为 null。如果输入 Y,则应保持 Y。然后,脚本需要根据用户输入的内容搜索具有空值或 Y 值的列。
我有下面的代码以及如何解决它的好主意
接受 WITHDRAWN 字符提示'请输入 Y 或 N)'
SELECT *
FROM table1
WHERE column1 = case when '&WITHDRAWN' = 'N' then null else '&WITHDRAWN' end;
正如您可能知道的那样,它不起作用,至于为空的列,'=' 符号需要是'is'。同样,如果列为“Y”,则符号需要为“=”。
我真的想不出一种方法来用 N 代替 null 的值并允许 column1 与之匹配。有没有可能?
【问题讨论】:
-
用 column1 代替用户输入。
case when column1 is null then 'N' else 'Y' end =&withdrawn或简单地使用合并。coalesce(column1,'N') = &withdrawn
标签: sql case substitution case-when