Top、Distinct函數
Top函數:
使用Top函數,可以只返回結果集的前N條記錄【N可以是數值,百分數等】。
注意:記錄顯示的值是進1制而不是四捨五入。
select top 10 * from Teacher --前10條記錄
select top 10 percent * from Teacher --前10%條記錄,此時記錄顯示的值是進1制而不是四捨五入
Distinct函數:
distinct函數主要用於去除重複值,他的作用與原始記錄表的數據無關,只與當前的結果集有關係,處理查詢出來的結果集。
select Name ,Age from Teacher
select distinct Name,Age from Teacher
NULL空值處理:
NULL:表示不知道,而不只是表示空值。
例如:查詢沒有工資的老師信息。
use TestSchool
select * from Teacher where Salary is not null
isNull: 如果發現對應的值是Null值,則以指定的字符串文本進行替換
select Name ,Age ,ISNULL(Salary ,NULL) from Teacher
union函數--集合運算符
union(聯合):用來聯合多個結果集的,叫做集合運算符。
注意:
1、要求聯合的的多個結果集有相同的數量的字段
2、要求聯合的多個結果集對應的列的數據類型一致(可以相互轉換)
select count(*) from Teacher where Gender = 'False'
union all
select count(*) from Teacher where Gender = 'True'
union 和union all 的區別:
union 默認是去除重複值的,效率低,是因為需要為你做是否重複的判斷
union all --不去除重複項
注意:
使用union all一次性插入多條記錄
insert into Classes
select 1,023班 union
select 4,026班 union all
select 5 ,027班 union
select 5,027班
注意:只要有 union 聯合時,去除插入記錄重複值。
insert into Classes
select 1,023班 union all
select 4,026班 union all
select 5 ,027班 union all
select 5,027班
注意:只有全部都用 union all 聯合時,不去除重複值。
select into from:
可以將from數據源表中的select指定的列的數據 into到新表中,新表是系統自動生成的,不能先人為創建,也就不能先存在。新表中,列的屬性只保留標識列,其餘均消失
select * into newtable From Classes
insert into newtable select Cid,CName from Classes
閱讀更多 劍雲鋒 的文章