2.6 根据数据项的键排序
Q: 针对某条件逻辑排序,如: job = 'SALESMAN' 按照 comm 排序,否则根据 sal 排序
A: 使用 case 表达式来动态改变如何对结果排序
sel...
2.5 处理排序空值
Q: 指定是否将空值字段行排在最后
A: 使用 case 表达式在 order by 子句中增加标记列; 或 RDBMS 特殊方案
DB2, MySQL, PostgreSQL,...
2.4 对字母数字混合的数据排序
Q: 现有字母和数字混合的数据,按照数字或字母部分来排序,建立如下视图:
create view V
as
select ename ||' '|| deptno a...
2.3 按子串排序
Q: 按照字符串某一部分排序, 如按照某字段值的最后两个字符排序
A: 使用 DBMS 内置函数
DB2, MySQL, Oracle, PostgreSQL ( substr()...
Q: 需要返回匹配特定子串或模式的行,比如在部门 10 和 20 中,返回名字有一个 "I", 或者职务中带有 "ER" 的员工行
A: 使用 LIKE 运算符, 通配符 "%"
Oracle,MyS...
Q: 用非空值替换空值
A: 使用 COALESCE
Oracle,MySQL,PostgreSQL,MSSQL,DB2 (使用COALESCE())
SELECT coalesce(comm, 0)...
Q: 查找某列值为空的行
A: 使用 IS NULL,或者 IS NOT NULL
Oracle,MySQL,PostgreSQL,MSSQL,DB2 (使用IS NULL, IS NOT NULL)...
Q: 从表中随机返回 n 条记录,每次执行返回不同的结果集
A: 使用DBMS内置函数生成随机数值,在 ORDER BY 中使用该函数随机排序
DB2 ( 使用 RAND 内置函数 )
SELECT ...
Q: 如何限制查询中返回的行数
A: 使用数据库内置函数
DB2 ( 使用 FETCH FIRST 子句 )
SELECT *
FROM emp FETCH FIRST 5 ROWS ONLY
MyS...
Q: 在 SELECT 语句中,对数值执行 IF-ELSE 操作
A: 使用 CASE
Oracle,MySQL,PostgreSQL,MSSQL,DB2 (使用 CASE )
SELECT enam...