Mysql中:concat()函数里面可以放多个字符串来拼接
Oracle 中concat()函数 只能拼接两个字符串
当然 如果想拼接多个字符串 用 || 符号
一般来讲,就是首先查询无分页的数据,然后外层套一层查询,加个伪列ROWNUM,控制查询的条数,然后再在外层查一次,控制查询的起始位置,如下代码
SELECT * FROM ( 黑色查询控制开始的位置
SELECT A.*, ROWNUM RN FROM ( 绿色查询无分页的数据后控制查询的条数
select p.* FROM 红色查询无分页的数据
EP_BASE_KY_PROJECT p
WHERE p.PZRQ IS not NULL
ORDER BY p.RESOURCE_ID) A
WHERE ROWNUM <= 10
) WHERE RN >= 0
oracle中
nvl(x,value)将一个NULL转换为另外一个值,如果x为NULL,则返回value,否则返回x值本身
insert into student values(7,'猪猪',default,NULL);
select nvl(address,'北京市') from student;
nvl2(x,value1,value2),如果x不为NULL,返回value1,否则,返回value2
select nvl2(address,'有地址','无地址') from student;
举个例子:这两块代码效果是一样的
SELECT * FROM (
SELECT A.*, ROWNUM RN FROM (
select p.RESOURCE_ID,NVL(p.PZRQ,'暂无') FROM
EP_BASE_KY_PROJECT p
ORDER BY p.RESOURCE_ID) A
WHERE ROWNUM <= 10
) WHERE RN >= 0
SELECT * FROM (
SELECT A.*, ROWNUM RN FROM (
select p.RESOURCE_ID,NVL2(p.PZRQ,p.PZRQ,'暂无') FROM
EP_BASE_KY_PROJECT p
ORDER BY p.RESOURCE_ID) A
WHERE ROWNUM <= 10
) WHERE RN >= 0
select substring_index('ABC_CE_FG','_',2) from dual;--ABC_CE
select substring_index('ABC_CE_FG','_',-2) from dual;--CE_FG
select substring_index('ABC_CE_FG','_',0) from dual;--空白字符串
select substring_index('ABC_CE_FG','_',3) from dual;--ABC_CE_FG
ORACLE中:
先看看两个函数的作用
select instr('ABC_CE_FG', '_',-1,2) from dual --4 负数就从右边数,第二次出现_ 的位置是4(这个位置从左往右数)
select instr('ABC_CE_FG', '_',1,2) from dual --7 正数就从左边数,第二次出现_ 的位置是4(这个位置从左往右数)
mysql中的:
select substring_index('ABC_CE_FG', '_', 2); --ABC_CE
oracle可以这样写:
select substr('ABC_CE_FG', 1,instr('ABC_CE_FG', '_',1,2)-1)from dual --从左边开始 到第六位