1. 程式人生 > >SQL特殊語句查詢

SQL特殊語句查詢

top語句:用於規定要返回的記錄數目

 
select top 5 name from Students  /*查詢學生表中,前5名學生的姓名*/
select top 20 percent name from Students /*查詢學生表中,前20%的學生姓名*/

/*查詢員工工資前十員工*/
select top 10 * 
from emp
order by sal

/*查詢員工工資前十與後十平均工資之差*/
select avg(emp1. sal)-avg(emp2.sal)
from (select top 10 sal from emp order by emp.sal desc) AS emp1(sal), (select top 10 sal from emp order by emp.sal asc) AS emp2(sal)

Limit語句:用於強制SELECT語句返回指定的記錄數。

limit接收一個或兩個數字引數,第一個引數指定第一個返回記錄行的偏移量,第二個引數指定返回記錄行的最大數目。

select * from table limit 5, 10; //檢索記錄行6-15

SELECT * from 表名 WHERE 條件 limit 5,-1; //檢索6到最後一條資料

SELECT * from 表名 WHERE 條件 limit 5; //檢索前5條資料

注意:初始記錄行的偏移量是0而不是1

FIRST() :函式返回指定的欄位中第一個記錄的值,LAST() 函式同理

//查詢 "OrderPrice" 列的第一個值。

SELECT FIRST(OrderPrice) FirstOrderPrice FROM Orders

Mid函式:MID 函式用於從文字欄位中提取字元。

//現在,我們希望從表Persons中的 "City" 列中提取前 3 個字元。

SELECT MID(City,1,3) SmallCity FROM Persons

ROUND() 函式:用於把數值欄位舍入為指定的小數位數。

//價格舍入為最接近的整數。

SELECT ProductName, ROUND(UnitPrice,0) UnitPrice FROM Products

連線:

連線join,等價於內連線inner join

左外連線:left join

右外連線:right join

全連線:full join

//對於連線,我們平時這麼幹:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P

//如果使用join語句的話應該
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P

//左連線
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P

//右連線
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2

//全連線
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

http://www.w3school.com.cn/sql/sql_func_now.asp