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

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规范

复制代码
--一、单个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
posted @ 2019-03-21 21:45  konglingbin  阅读(45210)  评论(0编辑  收藏  举报