1. 程式人生 > >Oracle中字符串連接的實現方法

Oracle中字符串連接的實現方法

算術表達式 else if decode from plain details () class tool

1.和其他數據庫系統類似,Oracle字符串連接使用“||”進行字符串拼接,其使用方式和MSSQLServer中的加號“+”一樣。

例如:

SELECT ‘工號為‘||FNumber||‘的員工姓名為‘||FName FROM T_Employee 
WHERE FName IS NOT NULL 

2.除了“||”,Oracle還支持使用CONCAT()函數進行字符串拼接,比如執行下面的SQL語句:

SELECT CONCAT(‘工號:‘,FNumber) FROM T_Employee 

如果CONCAT中連接的值不是字符串,Oracle會嘗試將其轉換為字符串,比如執行下面的SQL語句:

SELECT CONCAT(‘年齡:‘,FAge) FROM T_Employee 

與MYSQL的CONCAT()函數不同,Oracle的CONCAT()函數只支持兩個參數,不支持兩個以上字符串的拼接,比如下面的SQL語句在Oracle中是錯誤的:

SELECT CONCAT(‘工號為‘,FNumber,‘的員工姓名為‘,FName) FROM T_Employee 
WHERE FName IS NOT NULL 

運行以後Oracle會報出下面的錯誤信息:

參數個數無效

3.如果要進行多個字符串的拼接的話,可以使用多個CONCAT()函數嵌套使用,上面的SQL可以如下改寫:

SELECT CONCAT(CONCAT(CONCAT(‘工號為‘,FNumber),‘的員工姓名為‘),FName) FROM 
T_Employee 
WHERE FName IS NOT NULL 



1、標準sql規範

技術分享圖片
--一、單個IF
--1、

if a=...  then
.........
end if;

--2、

if a=... then
......
else
....
end if;

--二、多個IF

if a=..  then
......
elsif a=..  then
....
end if;     
----這裏中間是“ELSIF”,而不是ELSE IF 。這裏需要特別註意
技術分享圖片

2、decode函數

DECODE的語法

DECODE(value,if1,then1,if2,then2,if3,then3,...,else)

表示如果value等於if1時,DECODE函數的結果返回then1,...,如果不等於任何一個if值,則返回else。

3、case when

case when a=‘1‘then ‘xxxx‘
     when a=‘2‘ then ‘ssss‘
else
  ‘zzzzz‘
end as

註意點:

1、以CASE開頭,以END結尾
2、分支中WHEN 後跟條件,THEN為顯示結果
3、ELSE 為除此之外的默認情況,類似於高級語言程序中switch case的default,可以不加
4、END 後跟別名

Oracle 語句中“||”代表什麽啊?

Oracle 語句中“||”代表什麽啊?跟ServerSQL中的字符串的連接符“+”是一個概念麽?

1. 恩是的 是一個含義。。。select ‘1‘||‘2‘ from dual 代表12

2.跟ServerSQL中的字符串的連接符“+”是一個概念

3.

--連接字段 SQL> select ‘ABC‘||‘EFG‘ from dual; ‘ABC‘||‘EFG‘ ------------ ABCEFG 也可以使用concat()函數 select concat(‘A‘,‘B‘) from dual; 4.是的,是和java的 +號一樣的。相當於 串聯 5. ‘||‘在oracle中用於拼接關聯字段 6.連接字符串,相當於sql server中的+,也可以用concat()函數實現連接 7. 連接符,用於列與列,列與算術表達式或列與常量間創建一個字符表達式
比如
SQL>SELECT ename||‘ is a ‘||job AS "Employee Details" FROM emp;
則查詢結果為:
Employee Details
-------------------------
SMITH is a ClERK
ALLEN is a SALESMAN
WARD is a MANAGER

Oracle中字符串連接的實現方法