为了账号安全,请及时绑定邮箱和手机立即绑定

请问下关于decode的表达式能否为SQL语句?为什么?

请问下关于decode的表达式能否为SQL语句?为什么?

江户川乱折腾 2022-03-02 15:07:25
比如说decode(value,null,SQL语句)
查看完整描述

3 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

可以为sql语句
1.sql语句不能用引号包含起来不会执行,会被当做字符串来显示。
如:select decode(1,2,'0','select sysdate from dual') from dual;
结果:select sysdate from dual
2.直接用括号包含起来可以直接执行。
如:select decode(1,2,0,(select 3 from dual)) from dual;
结果3

查看完整回答
反对 回复 2022-03-07
?
莫回无

TA贡献1865条经验 获得超7个赞

运行例子如下:

SQL> SELECT
2 DECODE( 'A', 'A', (SELECT 'A' FROM dual ), (SELECT 'B' FROM dual ) ) A,
3 DECODE( 'B', 'A', (SELECT 'A' FROM dual ), (SELECT 'B' FROM dual ) ) B
4 FROM
5 dual;
A B
-- --
A B
SQL>

要求, 那个 sql 语句, 只能返回 1行1列。


查看完整回答
反对 回复 2022-03-07
?
慕容3067478

TA贡献1773条经验 获得超3个赞

可以的。只是只能出现在select之后。
例:SQL> select decode('1','1','select * fro emp') from dual;
DECODE('1','1','SELECT*FROEMP'
------------------------------
select * fro emp

如果控制判断不需要decode,改用nvl就可以了。
例如:SQL> select nvl('','Select * from emp') from dual;
NVL('','SELECT*FROMEMP')
------------------------
Select * from emp


查看完整回答
反对 回复 2022-03-07
  • 3 回答
  • 0 关注
  • 289 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号