统计部门不为总经办的总工资大于100的部门
select sum(salary),emp from emp_salary e where e.emp not in ("总经办") group by e.emp having > 100eg:
SELECT P.ProductID, P.Name, P.ProductNumber, M.Name AS ProductModelName FROM Production.Product AS P INNER JOIN (SELECT Name, ProductModelID FROM Production.ProductModel) AS M ON P.ProductModelID = M.ProductModelID结合cout使用,统计某一个产品销量多少,需要显示产品的名称
SELECT P.ProductID, P.Name, P.ProductNumber, M.fee AS fee FROM Production.Product AS P INNER JOIN (SELECT ProductModelID,count(*) FROM Production.ProductModel group by ProductModelID) AS M ON P.ProductModelID = M.ProductModelID查询user表里面的成员性别,当sex为1的时候为“男”,为“0”的时候为女,否则为其他
select u.id,u.name,u.sex, (case u.sex when 1 then '男' when 2 then '女' else '其他' end )性别 from users u; 查询结果显示: ID NAME SEX 性别如果不希望显示sex的话,sql语句为:
select u.id,u.name, ( case u.sex when 1 then "男", when 2 then "女" else "其他" end )性别 from user u与sum结合,查询男生和女生分别有多少人
select sum(case u.sex when 1 then 1 else 0 end)男性, sum(case u.sex when 2 then 1 else 0 end)女性, sum(case when u.sex <> 2 and s.sex <> 1 then 1 else 0 end)其他 from user u与count结合
select count(case u.sex when 1 then 1 end)男性, count(case when u.sex=2 then 1 end)女, count(case when u.sex <>1 and u.sex<>2 then 1 end)性别为空 from users u;上面两个结果都:
男性 女 性别为空 ---------- ---------- ---------- 3 2 0统计某一段年龄区间的人数,按性别区分
select u.sex, (sum(case when u.age <= 20 then 1 else 0 end) as '[0-20]的人', sum(case when u.age between 21 and 40 then 1 else 0 end) as '(20-40]的人', sum(case when u.age >40 then 1 else 0 end) as 40岁以上的人 ) from user u group by u.sex在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个: 1. convert(int,字段名) 例如:select convert(int,’fee’) 2. cast(字段名 as int) 例如:select cast(‘fee’ as int) 其实,一般情况下没有必要把字符串转换为数字类型