我有这个句子要在SQL中解码:如果A和B不为空,则返回此ID如何使用DECODE功能?谢谢我没有发现任何关于在SQL中的DECODE中使用两个不同变量的信息
czfnxgou1#
这是样品表;只有ID = 1满足您指定的条件:
ID = 1
SQL> select * from test order by id; ID A B ---------- - - 1 x y --> A and B are both NOT NULL, so ID = 1 should be returned 2 z 3 w
你能用decode吗?当然,但它真的很丑,很难写,读(理解)和维护。
decode
SQL> select id 2 from test 3 where 1 = decode(a, null, 0, 4 decode(b, null, 0, 1) 5 ); ID ---------- 1
正如所评论的,case表达式真的很好,易于编写,阅读(理解)和维护。我建议你使用它。
case
SQL> select id 2 from test 3 where 1 = case when a is not null and b is not null then 1 4 else 0 5 end; ID ---------- 1 SQL>
1条答案
按热度按时间czfnxgou1#
这是样品表;只有
ID = 1
满足您指定的条件:你能用
decode
吗?当然,但它真的很丑,很难写,读(理解)和维护。正如所评论的,
case
表达式真的很好,易于编写,阅读(理解)和维护。我建议你使用它。