天天看点

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的组;