1)LPAD
LPAD和RPAD的用法
SELECT LPAD('A',10,'-') FROM DUAL;
A的右边插入10个'-'字符.
SELECT RPAD('A',10,'-') FROM DUAL;
A的左边插入10个'-'字符.
2)UNION
union 与union all都是合并结果集,不过它们之间是有区别的,union会自动过滤重复的记录值,union all则不会过滤
.UNION 会把重复的记录过滤,
.UNION ALL 才不会过滤
你可以用下的sql 作简单的测试
select * from mainorder where orderid = 349
union
select * from mainorder where orderid = 349
返回的是一条记录
select * from mainorder where orderid = 349
union all
select * from mainorder where orderid = 349
返回的是两条记录
特别注意的是,在与union连用时,各Select的字段顺序要一致,否则会报数据类型不匹
配或是类型转换出错。
3)DECODE
·软件环境:
1、Windows NT4.0+ORACLE 8.0.4
2、ORACLE安装路径为:C:ORANT
·含义解释:
decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF
LPAD和RPAD的用法
SELECT LPAD('A',10,'-') FROM DUAL;
A的右边插入10个'-'字符.
SELECT RPAD('A',10,'-') FROM DUAL;
A的左边插入10个'-'字符.
2)UNION
union 与union all都是合并结果集,不过它们之间是有区别的,union会自动过滤重复的记录值,union all则不会过滤
.UNION 会把重复的记录过滤,
.UNION ALL 才不会过滤
你可以用下的sql 作简单的测试
select * from mainorder where orderid = 349
union
select * from mainorder where orderid = 349
返回的是一条记录
select * from mainorder where orderid = 349
union all
select * from mainorder where orderid = 349
返回的是两条记录
特别注意的是,在与union连用时,各Select的字段顺序要一致,否则会报数据类型不匹
配或是类型转换出错。
3)DECODE
·软件环境:
1、Windows NT4.0+ORACLE 8.0.4
2、ORACLE安装路径为:C:ORANT
·含义解释:
decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF