SQL笔记

2018-05-31  本文已影响4人  鱼点困

分页

SELECT id FROM tableName LIMIT X,Y

LIMIT  X,Y  中X表示跳过X个数据,读取Y个数据
例如:LIMIT 2,1 数据读取从第3条开始,读取1条数据 

SELECT  id  FROM tableName LIMIT Y OFFSET X

OFFSET  X是跳过X个数据,LIMIT  Y是选取Y个数据

删除重复数据

DELETE FROM tableName t1
WHERE id < (
    SELECT MAX(id)
    FROM tableName t2
    WHERE t1.orgid = t2.orgid AND t1.xxx = t2.xxx
)

内联视图

SELECT *
FROM (
    SELECT  _name AS name, _age AS age
    FROM tableName
) x
// 使用取别名的列
WHERE age < 20

Tip:
FROM子句 先于 WHERE子句 先于 SELECT子句。
别名取在SELECT子句,WHERE子句不能辨识别名,
而如果使用内联视图,别名取在FROM子句中,WHERE子句能够辨识别名。

随机返回n条数据

MySQL:
SELECT * FROM tableName ORDER BY rand() LIMIT 5

PostgreSQL:
SELECT * FROM tableName ORDER BY random() LIMIT 5

将空值转为实际值

1、
使用CASE WHEN ... THEN ... 
         WHEN ... THEN ...
    ELSE ... END

2、
COALESCE(VALUE1, VALUE2, VALUE3...)
返回第一个非空值【推荐】
上一篇 下一篇

猜你喜欢

热点阅读