SQL 之 基于行的逻辑
2016-10-06 00:16
141 查看
关键字: WHERE、
TOP/LIMIT/ROWNUM
1. 应用查询条件
SELECT columnlist
FROM tablelist
WHERE condition
ORDER BY columnlist
PS:WHERE子句必须总在FROM和ORDER
BY之间。事实上,任何子句都必须按这个顺序,ORDER BY是最后的。
示例一
SELECT
FirstName,
LastName,
QuantityPurchased
FROM Orders
WHERE LastName = ‘Harper’
输出
FirstName LastName QuantityPurchased
---------------------------------------------------
Brenda Harper 5
字符列的值要用单引号’’括起,如果是数字字段则不用。
2. WHERE子句操作符
比如示例一WHERE子句的等号=用作操作符:表对相等性的判断。
相等
= 、不相等 <>、大于>、小于<、大于或等于>=、小于或等于<=
SELECT
FirstName,
LastName,
FROM Orders
WHERE LastName > ‘K’
ORDER BY FirstName
结果
FirstName LastName
----------------------------
Natalie Lopez
William Smith
PS:文本大于’K’即
以L-Z(在K后面) 开头的文本
同理,其实这些操作符也可以用在查询格式的CASE语句(简单格式仅仅是相等性判断):
CASE
WHEN column1 > value1 THEN result1
END
3. 限制行
不关心返回哪些行,只想看一个子集(看其中的数据是怎样的),这种情况用TOP。
TOP关键字:指定想要限制多少行(比如N行)返回,则返回表的前N行。
SELECT
TOP number
columnlist
FROM table
与SQL Server不同的是:
MySQL使用LIMIT关键字:
SELECT
columnlist
FROM table
LIMIT number
Oracle:ROWNUM <= num
SELECT
columnlist
FROM table
WHERE ROWNUM <= number
示例二:
SELECT
TOP 10 *
FROM table
返回表的前10行,包含所有列
SELECT
TOP 10
column1,
column2
FROM table
返回表的前10行,包含column1,column2
PS:不是随机返回N行,而是根据在数据库中的物理存储方式,限定了前N行的数据,
4. Sort限制行数
TOP用法:【TOP N查询】TOP和ORDER
BY子句结合使用,可以得到有序的一定数量的行,比如最大的前N行。排序作用。
SELECT
TOP 3
Title AS ‘Book Title’,
CurrentMonthSales AS
‘Quantity Sold’
FROM Books
ORDER BY CurrentMonthSales DESC
得到销量最多的前3名书籍(名字)
如果是只想要某个作者的销量最大的书呢?
SELECT
TOP 1
Title AS ‘Book Title’,
CurrentMonthSales AS
‘Quantity Sold’
FROM Books
WHERE Author = ‘Shakespare’
ORDER BY CurrentMonthSales DESC
WHERE子句一定在FROM后ORDER BY前。
Oracle版本的限制行和排序:
SELECT *
FROM
( SELECT
columnlist
FROM table
ORDER BY columnlist DESC )
WHERE ROWNUM <= number
先降序排列所有行,再使用RUMNUM来限制行数。
TOP/LIMIT/ROWNUM
1. 应用查询条件
SELECT columnlist
FROM tablelist
WHERE condition
ORDER BY columnlist
PS:WHERE子句必须总在FROM和ORDER
BY之间。事实上,任何子句都必须按这个顺序,ORDER BY是最后的。
示例一
SELECT
FirstName,
LastName,
QuantityPurchased
FROM Orders
WHERE LastName = ‘Harper’
输出
FirstName LastName QuantityPurchased
---------------------------------------------------
Brenda Harper 5
字符列的值要用单引号’’括起,如果是数字字段则不用。
2. WHERE子句操作符
比如示例一WHERE子句的等号=用作操作符:表对相等性的判断。
相等
= 、不相等 <>、大于>、小于<、大于或等于>=、小于或等于<=
SELECT
FirstName,
LastName,
FROM Orders
WHERE LastName > ‘K’
ORDER BY FirstName
结果
FirstName LastName
----------------------------
Natalie Lopez
William Smith
PS:文本大于’K’即
以L-Z(在K后面) 开头的文本
同理,其实这些操作符也可以用在查询格式的CASE语句(简单格式仅仅是相等性判断):
CASE
WHEN column1 > value1 THEN result1
END
3. 限制行
不关心返回哪些行,只想看一个子集(看其中的数据是怎样的),这种情况用TOP。
TOP关键字:指定想要限制多少行(比如N行)返回,则返回表的前N行。
SELECT
TOP number
columnlist
FROM table
与SQL Server不同的是:
MySQL使用LIMIT关键字:
SELECT
columnlist
FROM table
LIMIT number
Oracle:ROWNUM <= num
SELECT
columnlist
FROM table
WHERE ROWNUM <= number
示例二:
SELECT
TOP 10 *
FROM table
返回表的前10行,包含所有列
SELECT
TOP 10
column1,
column2
FROM table
返回表的前10行,包含column1,column2
PS:不是随机返回N行,而是根据在数据库中的物理存储方式,限定了前N行的数据,
4. Sort限制行数
TOP用法:【TOP N查询】TOP和ORDER
BY子句结合使用,可以得到有序的一定数量的行,比如最大的前N行。排序作用。
SELECT
TOP 3
Title AS ‘Book Title’,
CurrentMonthSales AS
‘Quantity Sold’
FROM Books
ORDER BY CurrentMonthSales DESC
得到销量最多的前3名书籍(名字)
如果是只想要某个作者的销量最大的书呢?
SELECT
TOP 1
Title AS ‘Book Title’,
CurrentMonthSales AS
‘Quantity Sold’
FROM Books
WHERE Author = ‘Shakespare’
ORDER BY CurrentMonthSales DESC
WHERE子句一定在FROM后ORDER BY前。
Oracle版本的限制行和排序:
SELECT *
FROM
( SELECT
columnlist
FROM table
ORDER BY columnlist DESC )
WHERE ROWNUM <= number
先降序排列所有行,再使用RUMNUM来限制行数。
相关文章推荐
- T-SQL查询进阶--基于列的逻辑表达式
- SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid 不正确(应为 1:1772,但实际为 0:0)。在文件 'D:\Program Files\Microsoft SQL Ser
- T-SQL 基于列的逻辑表达式 (CASE)
- SQl执行错误!SQl Server检测到基于一致性的逻辑I/O 错误 校验 和不正确
- T-SQL查询进阶--基于列的逻辑表达式
- MADlib——基于SQL的数据挖掘解决方案(13)——回归之逻辑回归
- T-SQL查询进阶--基于列的逻辑表达式
- T-SQL查询——基于列的逻辑表达式
- SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid 不正确(应为 1:1772,但实际为 0:0)。在文件 'D:\Program Files\Microsoft SQL Ser
- T-SQL 基于列的逻辑表达式 (CASE)
- SQL 之 基于行的逻辑
- T_SQL基于列的逻辑表达式(case)
- SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid 不正确(应为 1:1772,但实际为 0:0)。在文件 'D:\Program Files\Microsoft SQL Ser
- T-SQL查询进阶--基于列的逻辑表达式
- T-SQL查询进阶--基于列的逻辑表达式
- T-SQL 基于列的逻辑表达式 (CASE)
- T-SQL 基于列的逻辑表达式 (CASE)
- sql-server 2005数据库文件恢复(检测到基于一致性的逻辑 I/O 错误)
- spark sql逻辑计划(优化完)转物理计划
- JEECG - 基于代码生成器的J2EE智能开发框架 续四: 查询条件SQL生成器设计思路