sql查詢遇到的問題

2021-08-28 01:56:21 字數 677 閱讀 6092

一、&與&&

在pl/sql developer中,比如查詢如下sql

select decode(column_name,'if1','value1','if2','value2','if3','value1&value2','else')

from table_name

就會出現如下變數對話方塊:

要求輸入的名稱為value2的值,但是如果將&改為&&,才不會彈出上面的對話方塊,因為我們要求實現,如果column_name的值等於if3的時候輸出value1&value2。並且,如果將對話方塊中的值輸入為&value2,其執行結果和將&改為&&的執行結果一樣,每次執行還是會彈出上面的對話方塊。

由此可見,&是乙個連線符,它會將它後面的字串看成是乙個新宣告的沒有值的變數,所以每次執行sql會要求輸入變數的值。而&&是表示&後面的字串&value2看成了已經給變數賦值為&value2,也就是,將第二個&看成了字串。

可以和||連線符對比一下,如果將上面sql語句的'value1&value2'改為:'value1'||'&'||'value2',它也會實現和&&同樣的效果,因為||連線符是把後面的&看成了乙個字串,而不是乙個特殊字元。

oracel查詢遇到的sql問題

1 查詢時字串轉換成時間的問題 to date 2018 10 25 19 42 00 yyyy mm dd hh24 mi ss 2 時間相減問題 oracle計算時間差表示式 獲取兩時間的相差豪秒數 select ceil to date 2008 05 02 00 00 00 yyyy mm ...

最近遇到的SQL問題

select translator as 譯者姓名 count as 總派件次數 sum convert numeric 8,2 quantity as 總翻譯字數 sum case when datediff mm,date getdate 6 then convert numeric 8,2 q...

SQL遇到的小問題

寫了個sql做個統計,最大分數和最小分數,結果測試時發現查詢的結果和實際有誤。猜到應該是資料庫中資料型別的原因,檢視字段型別為varchar,當varchar時,比對數字9比10大,所以會有錯誤。解決辦法 1 最簡單,在字段後加0 select max 欄位名 0 from 表名 2 使用函式實現 ...