Oracle中字符串连接的实现方法

时间:2021-10-24 22:24:50

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

oracle中if/else功能的实现的3种写法

1、标准sql规范

Oracle中字符串连接的实现方法
--一、单个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 。这里需要特别注意
Oracle中字符串连接的实现方法

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