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
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 asoracle 字符串转数组
注意点:
1、以CASE开头,以END结尾
2、分⽀中WHEN 后跟条件,THEN为显⽰结果
3、ELSE 为除此之外的默认情况,类似于⾼级语⾔程序中switch case的default,可以不加
4、END 后跟别名
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
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论