㈠ sql語句中decode函數怎麼加條件
DECODE 是 判斷 等於/不等於的情況。
判斷小於的, 用 CASE WHEN
例如:
CASE
WHEN 數學成績 < 60 THEN '不及格'
ELSE '及格'
END
㈡ 執行 sum(decode)sql語句時,提示ORA-0092:數據類型不一致,應為NUMBER,但卻獲得DATE,該如何處理
sum()函數數據類型必須為數值型,若要把字元串相連可以使用vm_contact()函數
㈢ 我在sql語句中DECODE返回的值有韓文,發現,導出excel,,得到的數據都是亂碼
將decode中不可以匹配NULL,DECODE(nvl(blood_test_flag,' '), 'Y','정녕', 'N','너ㅏ어어어', ' ','None', 'Invalid')
㈣ decode的表達式能否為SQL語句
可以的。只是只能出現在select之後。
例:SQL> select decode('1','1','select * fro emp') from al;
DECODE('1','1','SELECT*FROEMP'
------------------------------
select * fro emp
如果控制判斷不需要decode,改用nvl就可以了。
例如:SQL> select nvl('','Select * from emp') from al;
NVL('','SELECT*FROMEMP')
------------------------
Select * from emp
㈤ SQL中 decode()函數簡介
DECODE函數,是ORACLE公司的SQL軟體ORACLE
PL/SQL所提供的特有函數計算方式,以其簡潔的運算方式,可控的數據模型和靈活的格式轉換而聞名。
今天看別人的SQL時看這裡面還有decode()函數,以前從來沒接觸到,上網查了一下,還挺好用的一個函數,寫下來希望對朋友們有幫助哈!
decode()函數簡介:
主要作用:將查詢結果翻譯成其他值(即以其他形式表現出來,以下舉例說明);
使用方法:
Select
decode(columnname,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,預設值)
From
talbename
Where
…
其中columnname為要選擇的table中所定義的column,
·含義解釋:
decode(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,預設值)的理解如下:
if
(條件==值1)
then
return(翻譯值1)
elsif
(條件==值2)
then
return(翻譯值2)
......
elsif
(條件==值n)
then
return(翻譯值n)
else
return(預設值)
end
if
註:其中預設值可以是你要選擇的column
name
本身,也可以是你想定義的其他值,比如Other等;
舉例說明:
現定義一table名為output,其中定義兩個column分別為monthid(var型)和sale(number型),若sale值=1000時翻譯為D,=2000時翻譯為C,=3000時翻譯為B,=4000時翻譯為A,如是其他值則翻譯為Other;
SQL如下:
Select
monthid
,
decode
(sale,1000,'D',2000,'C',3000,'B',4000,'A','Other')
sale
from
output
特殊情況:
若只與一個值進行比較
Select
monthid
,decode(sale,
NULL,『---',sale)
sale
from
output
另:decode中可使用其他函數,如nvl函數或sign()函數等;
NVL(EXPR1,EXPR2)
若EXPR1是NULL,則返回EXPR2,否則返回EXPR1.
SELECT
NAME,NVL(TO_CHAR(COMM),'NOT
APPLICATION')
FROM
TABLE1;
如果用到decode函數中就是
select
monthid,decode(nvl(sale,6000),6000,'NG','OK')
from
output
sign()函數根據某個值是0、正數還是負數,分別返回0、1、-1,
如果取較小值就是
select
monthid,decode(sign(sale-6000),-1,sale,6000)
from
output,即達到取較小值的目的。
小結:
作用:將輸入數值與函數中的參數列表相比較,根據輸入值返回一個對應值。函數的參數列表是由若干數值及其對應結果值組成的若干序偶形式。當然,假如未能與任何一個實參序偶匹配成功,則函數也有默認的返回值。
區別於SQL的其它函數,DECODE函數還能識別和操作空值。
語法:DECODE(control_value,value1,result1[,value2,result2…][,default_result]);
control
_value試圖處理的數值。DECODE函數將該數值與後面的一系列的偶序相比較,以決定返回值。
value1是一組成序偶的數值。假如輸入數值與之匹配成功,則相應的結果將被返回。對應一個空的返回值,可以使用要害字NULL於之對應
result1
是一組成序偶的結果值。
default_result
未能與任何一個值匹配時,函數返回的默認值。
㈥ plsql中運行語句出錯 ,求指教 ,提示該函數decode只能在sql語句中使用。
因為它只是在sql語句中使用,就比如像其他的函數count,max、min等這些函數只能用於sql語句中一樣。
㈦ sql語句 encode和decode的作用與區別。 求大佬解答_(:з」∠)_
ENCODE(str,pass_str)
使用pass_str作為口令加密str。為了解密結果,使用DECODE()。結果是一個二進制字元串,如果你想要在列中保存它,使用一個BLOB列類型。
DECODE(crypt_str,pass_str)
使用pass_str作為口令解密加密的字元串crypt_str。crypt_str應該是一個由ENCODE()返回的字元串。
祝好運,望採納
㈧ sql decode函數裡面有多個值怎麼辦
1, deocde 與 case when 的作用相同,用於不同條件分支的不同處理。於case when 相比只是用法不同。同樣可以嵌套和滿足多個值。
2,多個值
decode(name, 'Wang', '001', 'Li', '002', '003')
相當於
case
when name = 'Wang'
then '001'
when name = 'Li'
then '002'
else '003'
end
3, 嵌套
decode(name, 'Wang', decode(sno, '001', 'Yes', ''), 'Li', decode(sno,'002','Yes',''), decode(sno, '003','Yes',''))
相當於
case
when name = 'Wang'
then case
when sno='001'
then 'Yes'
else ''
end
when name='Li'
then case
when sno='002'
then 'Yes'
else ''
end
else case
when sno='003'
then 'Yes'
else ''
end
end
㈨ 請教sql decode函數的一個簡單用法
首先decode函數是Oracle獨有的判斷函數!
//其實就是一個簡單的判斷函數,比如欄位的值為a
decode(欄位,'a','輸出是a','是a','輸出是b','否則輸出都不是');
//下面我拿EMP表的SCOTT來示例代碼:
SELECT
DECODE(ename,'是SCOTT','Yes','不是SCOTT','No','都不是')
FROMemp
WHEREename=UPPER('scott');
㈩ sql語句中,decode和case when語句的區別有哪些
case when 寫起來更長但是更靈活,比如可以case when 列1>列2 ,而decode要實現這個功能要借用SIGN函數,因為DECODE只能判斷具體值不能判斷條件格式,decode(sign(列1-列2),1,『』)效果等同如上,其他的基本等同。
還有decode有一個靈活的應用就是order by , order by decode(列1,字元,1,字元2,2)可以進行靈活的排序。