版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ld705454682/article/details/82180333
1查找空值
不能用=NULL,而是IS NULL,IS NOT NULL
2模糊查询
转义/
select * from table where name like '\_BCE' ESCAPE '\';
3按多个字段排序
先按第一个排序条件将数据分成几组,然后每组的数据再按后面的列进行排序。
4按字串排序
SELECT User,SUBSTR(password_last_changed,19,1) from user ORDER BY 2;
5按条件取不同列中的值排序
SELECT case when Db='sys' THEN 1 else 2 end as '级别' FROM db ORDER BY 1;
6空字符串与NULL
null可以是任何类型,而空字符串本身是varchar2类型。
例:select no as 序号,name as 名称,deptNo as 部门编码 from a
union all
select no as 序号,name as 名称,null as 部门编码 from b;
结果:
序号 名称 部门编码
1 zhangsan 2
2 lisi
如果上述语句改成
select no as 序号,name as 名称,deptNo as 部门编码 from a
union all
select no as 序号,name as 名称,' ' as 部门编码 from b;
则报:表达式必须具有与对应表达式相同的数据类型。
空字符串查询结果显示成NULL。
select ' ' as c1 from a;
查询结果:
c1
null
7UNION与OR
union all 与 or作用不等价,union 与or作用等价,or是取两个结果的合集而非并集,union all取并集(不去重),union(去重)。