天天看點

SQL SERVER 條件語句的查詢

--1、查詢時使用DISDINCT取消重複,使查詢結果唯一;
SELECT DISTINCT Gender FROM person;

--2、查詢時使用TOP傳回前n行記錄;
SELECT TOP() * FROM person;  --傳回前2行記錄;
SELECT TOP  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 (,,);--隻要id的值有符合括号中的值,其記錄都會顯示;
SELECT * FROM person WHERE id NOT IN (,,);--除了括号中的值不顯示,其餘記錄都會顯示;

--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=);
   ---因為内層查詢中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 = 
    UNION ALL
    SELECT * FROM person WHERE gender='girl';
    ---不适用關鍵字ALL時,删除重複行并排序;

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

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