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

比如说decode(value,null,SQL语句)

江户川乱折腾
浏览 290回答 3
3回答

慕侠2389804

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

莫回无

运行例子如下:SQL> SELECT2 DECODE( 'A', 'A', (SELECT 'A' FROM dual ), (SELECT 'B' FROM dual ) ) A,3 DECODE( 'B', 'A', (SELECT 'A' FROM dual ), (SELECT 'B' FROM dual ) ) B4 FROM5 dual;A B-- --A BSQL>要求, 那个 sql 语句, 只能返回 1行1列。

慕容3067478

可以的。只是只能出现在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
打开App,查看更多内容
随时随地看视频慕课网APP