亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問下關于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 關注
  • 279 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號