SQL查询、排序(mysql下)
2016-12-23 14:08
399 查看
1. 查询
(1)连接列值
select concat(column1, 'your string', column2) as new_column from table
使用
concat函数连接来自多个列的数值。
(2)使用条件逻辑
select column1, column2, case when column2 <= 100 then 'bad' case when column2 >= 500 then 'perfact' else 'good' end as status from table
这将会创建一个新列
status,它的值由条件决定。如果没有使用else,对于不满足条件的,case表达式会返回
null。
(3)随机返回记录
select * from table order by rand() limit 5
同时使用
rand函数、
limit和
order by可以达到此效果。
注意:在order by子句中指定数字常量时,是要求根据select列表中相应位置的列来排序;在order by子句中使用函数时,则按函数在每一行计算结果排序。
(4)查找null
匹配null时,必须使用is null,不能使用
= null
(5)转换null
你可以使用非null值来代替null值select coalesce(column, 0) from table
这里,将column为
null的值替换为
0。
2. 排序
(1)基本排序
指定列名select column1,column2 from table order by column1 [asc|desc], column2 [asc|desc]
指定列编号
select column1,column2 from table order by 1 [asc|desc], 2 [asc|desc]
(2)按子串排序
select column1, column2 from table order by substring(column1, len(column1, 2))
表明按照
column1的最后两个字符排序。
(3)处理排序的null值
思路是先产生一张带有is_null信息的临时表,然后先按
is_null排序,再按你需要的列排序:
select column1, column2 from ( select column1, column2 case when column1 is null then 1 else 0 end as is_null from table) t1 order by is_null, column1
表明按照
column1升序排序,
null放最后。
(4)排序里面添加条件逻辑
使用case表达式:select column1, column2, column3 from table order by case when column1 = ' ' then column2 else column3 end
表明当column1的值为
' '时,按照
column2排序;否则按照
column3排序。
相关文章推荐
- 数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)
- mysql的sql语句根据经纬度查询距离排序
- (转)MySQL 查询重复出现次数最多的记录,按出现频率排序(SQL语句)
- 数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)
- 数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)
- mysql sql_mode 修改 排序分组查询
- 实验五 SQL查询(排序、集函数和分组子句的应用)
- 在Oracle、MySQL、MS SQL Server中查询指定数目的记录
- SQL语句实现按关健字模糊查询,并按匹配度排序
- SQL语句实现按关健字模糊查询,并按匹配度排序
- 实现按关健字模糊查询,并按匹配度排序的SQL语句
- mysql从视图view简化到带子查询的sql
- mysql查询优化之基于索引的排序
- SQL学习之查询技巧 查询第3的数据 用一条语句分组,排序 并查询某一排名
- MYSQL类型不支持原生SQL查询解决方法
- MySQL的一个一条SQL语句查询所有不同种类产品的一部分结果实例的SQL语句
- PL/SQL 学习笔记(一)----- pl/sql 基本查询与排序
- MySQL、Oracle、MS SQLserver限制查询所返回的行数
- SQL学习之查询技巧 查询第3的数据 用一条语句分组,排序 并查询某一排名
- oracle中一个树形关联表的查询排序sql