SQL SERVER 條件語句的查詢

景上發表於2016-05-21
--1、查詢時使用DISDINCT取消重複,使查詢結果唯一;
SELECT DISTINCT Gender FROM person;

--2、查詢時使用TOP返回前n行記錄;
SELECT TOP(2) * FROM person;  --返回前2行記錄;
SELECT TOP 60 PERCENT * FROM person;

--3、對查詢結果顯示的列名進行修改;
   ---1、使用AS關鍵字;
   SELECT id AS 序號 FROM person;
   ---2、使用等號“=”;
   SELECT '序號'=id FROM person;
   ---3、使用空格;
   SELECT id '序號', gender '性別' FROM person; 

--4、為查詢結果新增說明性文字;
SELECT '序號',id,'性別',gender FROM person;

--5、對查詢的結果進行算術運算;
SELECT 單價 * 數量 AS 折扣價 FROM person;

--6、使用IN關鍵字來查詢指定條件範圍內的記錄;
SELECT * FROM person WHERE id IN (0,1,2);--只要id的值有符合括號中的值,其記錄都會顯示;
SELECT * FROM person WHERE id NOT IN (0,1,2);--除了括號中的值不顯示,其餘記錄都會顯示;

--7、使用IS NULL 查詢表person中欄位gender為kong的記錄;
SELECT * FROM person WHERE Gender IS NULL;
SELECT * FROM person WHERE Gender IS NOT NULL;

--8、EXISTS之後是一個查詢語句,如果該查詢語句有記錄返回,則結果為true,否則為false;
SELECT * FROM person WHERE EXISTS (SELECT id FROM person WHERE id=5);
   ---因為內層查詢中person表欄位id沒有為5的,結果為false,所以外層的查詢結果為空;

--9、使用ORDER BY對指定欄位的資料進行排序,指定的欄位可以是多(當一個的欄位資料相同時,根據另外的欄位排序);
SELECT * FROM person ORDER BY id DESC;---DESC為降序,ASC為升序;

--10、使用關鍵字UNION ALL可以給出多條查詢語句,並將結果合併,所以合併時,對應的列數和資料型別必須相同;
   ---使用關鍵字ALL時,不刪除重複行業不對結果自動排序;
    SELECT * FROM person WHERE id = 1
    UNION ALL
    SELECT * FROM person WHERE gender='girl';
    ---不適用關鍵字ALL時,刪除重複行並排序;

--11、使用GROUP BY子句對查詢結果分組;
SELECT gender,id  FROM person 
GROUP BY gender,id HAVING COUNT(*) > 0;

--12、使用HAVING關鍵字對GROUP BY分組查詢結果進行條件過濾;
SELECT gender  FROM person 
GROUP BY gender HAVING COUNT(*) > 1;  
   --分組後,每個組的記錄數都可能不同,HAVING用於返回每個組中記錄數大於1的組;

相關文章