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
比如
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