您好,欢迎来到刀刀网。
搜索
您的当前位置:首页第七章 select查询

第七章 select查询

来源:刀刀网
/* 文件名称:CH7_Demo001.sql */ USE 北风贸易; GO

SELECT 姓名+' '+称呼,DATEDIFF(yy,出生日期,GETDATE()) FROM 员工; /* 文件名称:CH7_Demo002.sql */ USE 北风贸易; GO

SELECT $IDENTITY, 姓名FROM 员工; SELECT 员工编号, 姓名FROM 员工;

/* 文件名称:CH7_Demo003.sql */

SELECT $ROWGUID,Title FROM AdventureWorks.HumanResources.Employee; /* 文件名称:CH7_Demo004.sql */

SELECT 身份证号码,姓名,电话号码FROM 北风贸易.dbo.飞狐工作室; /* 文件名称:CH7_Demo005.sql */ USE 北风贸易; GO

SELECT 作者代号= au_id,

姓名= au_fname+au_lname, 电话号码= phone, 住址= address FROM authors;

/* 文件名称:CH7_Demo006.sql */ USE 北风贸易; GO

SELECT au_id AS 作者代号,

au_fname+au_lname AS 姓名, phone AS 电话号码, address AS 住址 FROM authors;

/* 文件名称:CH7_Demo007.sql */ USE 北风贸易; GO

SELECT au_fname+au_lname AS \"Name of Author\", phone FROM authors ORDER BY \"Name of Author\"; /* 文件名称:CH7_Demo008.sql */ USE 北风贸易; GO

SELECT 姓名, DateDiff(yy,出生日期,GETDATE()) AS 年龄 FROM 飞狐工作室ORDER BY 年龄DESC;

SELECT 姓名, DateDiff(yy,出生日期,GETDATE()) AS 年龄 FROM 飞狐工作室ORDER BY 2 DESC;

SELECT DateDiff(yy,出生日期,GETDATE()) AS 年龄, COUNT(*) AS 人数 FROM 飞狐工作室

GROUP BY DateDiff(yy,出生日期,GETDATE()) HAVING DateDiff(yy,出生日期,GETDATE()) > 21

ORDER BY 年龄DESC;

/* 文件名称:CH7_Demo009.sql */ USE 北风贸易; GO

SELECT DISTINCT 雇用日期FROM 飞狐工作室; /* 文件名称:CH7_Demo010.sql */ USE 北风贸易; GO

SELECT * INTO MyTmpTable FROM 飞狐工作室; /* 文件名称:CH7_Demo011.sql */ USE 北风贸易; GO

SELECT * INTO AdventureWorks.dbo.MyTmpTable FROM 飞狐工作室; /* 文件名称:CH7_Demo012.sql */ USE 北风贸易; GO

SELECT 姓名,目前薪水FROM 飞狐工作室

WHERE 目前薪水> 6000; /* 文件名称:CH7_Demo013.sql */ USE 北风贸易; GO

SELECT 姓名,部门FROM 飞狐工作室

WHERE 部门IN ('信息部','营销部','业务部'); /* 文件名称:CH7_Demo014.sql */ USE 北风贸易; GO

SELECT 姓名,部门FROM 飞狐工作室

WHERE 部门NOT IN ('信息部','营销部','业务部'); /* 文件名称:CH7_Demo015.sql */ USE 北风贸易; GO

SELECT 姓名,目前薪水FROM 飞狐工作室

WHERE 目前薪水>= 3000 AND 目前薪水<= 3500;

/* 文件名称:CH7_Demo016.sql */ USE 北风贸易; GO

SELECT 姓名,目前薪水FROM 飞狐工作室

WHERE 目前薪水BETWEEN 3000 AND 3500; /* 文件名称:CH7_Demo017.sql */ USE 北风贸易; GO

SELECT 姓名,目前薪水FROM 飞狐工作室

WHERE 目前薪水< 3000 OR 目前薪水> 3500; /* 文件名称:CH7_Demo018.sql */ USE 北风贸易; GO

SELECT 姓名,目前薪水FROM 飞狐工作室

WHERE 目前薪水NOT BETWEEN 3000 AND 3500; /* 文件名称:CH7_Demo019.sql */ USE 北风贸易; GO

SELECT 姓名,出生日期FROM 飞狐工作室

WHERE MONTH(出生日期) = MONTH(GETDATE()); /* 文件名称:CH7_Demo020.sql */ USE 北风贸易; GO

SELECT 姓名, DATEDIFF(yy,出生日期,GETDATE()) AS 年龄

FROM 飞狐工作室;

/* 文件名称:CH7_Demo021.sql */ USE 北风贸易; GO

SELECT 姓名, DATEDIFF(yy,出生日期,GETDATE()) AS 年龄 FROM 飞狐工作室

WHERE DATEDIFF(yy,出生日期,GETDATE()) BETWEEN 30 AND 40; /* 文件名称:CH7_Demo022.sql */ USE 北风贸易; GO

SELECT * FROM 章立民研究室

WHERE 出生日期BETWEEN '01/01/1980' AND '12/31/1981'; /* 文件名称:CH7_Demo023.sql */

USE 北风贸易; GO

SELECT 姓名, 目前薪水FROM 飞狐工作室 WHERE 目前薪水BETWEEN 3000 AND 3500 OR 目前薪水BETWEEN 4000 AND 4500 OR

目前薪水BETWEEN 5000 AND 5500; /* 文件名称:CH7_Demo024.sql */ USE 北风贸易; GO

SELECT 姓名, 出生日期FROM 飞狐工作室

WHERE 出生日期BETWEEN '12/01/1980' AND '12/31/1980' OR

出生日期BETWEEN '11/01/1982' AND '11/30/1982'; /* 文件名称:CH7_Demo025.sql */ USE 北风贸易; GO

SELECT 姓名, 目前薪水FROM 飞狐工作室 WHERE 目前薪水< 1100 OR

目前薪水BETWEEN 1900 AND 2000 OR 目前薪水BETWEEN 2900 AND 3000 OR 目前薪水BETWEEN 3900 AND 4000 OR

目前薪水> 5500; /* 文件名称:CH7_Demo026.sql */ USE 北风贸易; GO

SELECT 姓名, DateDiff(yy,出生日期,GETDATE()) AS 年龄 FROM 飞狐工作室

WHERE DateDiff(yy,出生日期,GETDATE()) < 20 OR

DateDiff(yy,出生日期,GETDATE()) BETWEEN 25 AND 30 OR DateDiff(yy,出生日期,GETDATE()) BETWEEN 35 AND 40 OR DateDiff(yy,出生日期,GETDATE()) BETWEEN 45 AND 50 OR

DateDiff(yy,出生日期,GETDATE()) > 60; /* 文件名称:CH7_Demo027.sql */ USE 北风贸易; GO

SELECT 姓名, 出生日期FROM 飞狐工作室

WHERE 出生日期BETWEEN '01/01/1940' AND '06/30/1942' OR 出生日期BETWEEN '01/01/1961' AND '12/31/1961' OR

出生日期>= '07/01/1982'; /* 文件名称:CH7_Demo028.sql */

USE 北风贸易; GO

SELECT 姓名, 出生日期, 自传, 相片FROM 飞狐工作室

WHERE 自传IS NOT NULL AND 相片IS NOT NULL; /* 文件名称:CH7_Demo029.sql */ USE 北风贸易; GO

SELECT 姓名, 出生日期, 自传FROM 飞狐工作室

WHERE 自传IS NULL;

/* 文件名称:CH7_Demo030.sql */ USE 北风贸易; GO

SELECT *

FROM 客户INNER JOIN 订货主档

ON 客户.客户编号= 订货主档.客户编号

WHERE 订货主档.订单日期BETWEEN '08/01/1996' AND '08/31/1996'; /* 文件名称:CH7_Demo031.sql */ USE 北风贸易; GO

SELECT 客户.公司名称,订货主档.* FROM 客户INNER JOIN 订货主档

ON 客户.客户编号= 订货主档.客户编号

WHERE 订货主档.订单日期BETWEEN '08/01/1996' AND '08/31/1996'; /* 文件名称:CH7_Demo032.sql */ USE 北风贸易; GO

SELECT 姓名FROM 飞狐工作室WHERE 姓名LIKE '%光%'; /* 文件名称:CH7_Demo033.sql */ USE 北风贸易; GO

SELECT 姓名,家庭住址,电话号码FROM 飞狐工作室

WHERE 家庭住址LIKE '%北京市%'; /* 文件名称:CH7_Demo034.sql */ USE 北风贸易; GO

SELECT 姓名,电话号码FROM 飞狐工作室WHERE 姓名LIKE '张%'; /* 文件名称:CH7_Demo035.sql */

USE 北风贸易; GO

SELECT 姓名,家庭住址FROM 飞狐工作室

WHERE 家庭住址LIKE '%上海市%' AND 家庭住址LIKE '%中正路%'; /* 文件名称:CH7_Demo036.sql */ USE 北风贸易; GO

SELECT 姓名, 自传FROM 飞狐工作室 WHERE 自传LIKE '%章立民%' AND 自传LIKE '%微软%' AND 自传LIKE '%MVP%' AND

相片IS NOT NULL; /* 文件名称:CH7_Demo037.sql */ USE 北风贸易; GO

SELECT 姓名FROM 飞狐工作室WHERE 姓名LIKE '__文%'; /* 文件名称:CH7_Demo038.sql */ USE 北风贸易; GO

SELECT 姓名FROM 飞狐工作室WHERE 姓名LIKE '__文'; /* 文件名称:CH7_Demo039.sql */ USE 北风贸易; GO

SELECT 姓名, 家庭住址FROM 飞狐工作室 WHERE (家庭住址LIKE '%北京市%') AND

(家庭住址LIKE '%10楼%' OR 家庭住址LIKE '%10_楼%'); /* 文件名称:CH7_Demo040.sql */ USE 北风贸易; GO

SELECT au_fname,au_lname FROM authors

WHERE au_lname LIKE '[P-Z]inger'; /* 文件名称:CH7_Demo041.sql */ USE 北风贸易; GO

SELECT 姓名FROM 飞狐工作室

WHERE 姓名LIKE '[ACD张李]%' ORDER BY 姓名; /* 文件名称:CH7_Demo042.sql */

USE 北风贸易; GO

SELECT 身份证号码,姓名FROM 飞狐工作室

WHERE 身份证号码LIKE '[1-5]%'; /* 文件名称:CH7_Demo043.sql */ USE 北风贸易; GO

SELECT 身份证号码,姓名FROM 飞狐工作室

WHERE 身份证号码LIKE '[15]%'; /* 文件名称:CH7_Demo044.sql */ USE 北风贸易; GO

SELECT 姓名FROM 飞狐工作室

WHERE 姓名LIKE '张[素俊]%'; /* 文件名称:CH7_Demo045.sql */ USE 北风贸易; GO

SELECT 姓名FROM 飞狐工作室

WHERE 姓名LIKE '[a-z]%'; /* 文件名称:CH7_Demo046.sql */ USE 北风贸易; GO

SELECT 姓名FROM 飞狐工作室

WHERE 姓名NOT LIKE '%[a-z]%' AND

姓名NOT LIKE '%[0-9]%'; /* 文件名称:CH7_Demo047.sql */ USE 北风贸易; GO

SELECT au_fname,au_lname FROM authors

WHERE au_fname LIKE '[^H-K]ichel'; /* 文件名称:CH7_Demo048.sql */ USE 北风贸易; GO

SELECT 姓名FROM 飞狐工作室

WHERE 姓名LIKE '[^ACD杜陈高]%'; /* 文件名称:CH7_Demo049.sql */ USE 北风贸易;

GO

SELECT 身份证号码,姓名FROM 飞狐工作室

WHERE 身份证号码LIKE '[^5-8]%'; /* 文件名称:CH7_Demo050.sql */ USE 北风贸易; GO

SELECT 身份证号码,姓名FROM 飞狐工作室

WHERE 身份证号码LIKE '[^135]%'; /* 文件名称:CH7_Demo051.sql */ USE 北风贸易; GO

SELECT 姓名FROM 飞狐工作室

WHERE 姓名LIKE '张[^启素俊]%'; /* 文件名称:CH7_Demo052.sql */ USE 北风贸易; GO

SELECT 姓名,家庭住址FROM 飞狐工作室

WHERE 家庭住址LIKE '%\\_%' ESCAPE '\\'; /* 文件名称:CH7_Demo053.sql */ USE 北风贸易; GO

SELECT 姓名,家庭住址FROM 飞狐工作室

WHERE 家庭住址LIKE '%\\%%' ESCAPE '\\'; /* 文件名称:CH7_Demo054.sql */ USE 北风贸易; GO

SELECT * FROM 飞狐工作室

WHERE 家庭住址LIKE '%-%--%' ESCAPE '-'; /* 文件名称:CH7_Demo055.sql */ USE 北风贸易; GO

SELECT 客户.客户编号,客户.公司名称,客户.联系人,客户.电话, 订货主档.订单号码,订货主档.订单日期,订货主档.要货日期, 订货主档.送货日期,订货主档.送货方式,订货主档.运费, 订货主档.收货人,订货主档.送货地址 FROM 客户INNER JOIN 订货主档

ON 客户.客户编号= 订货主档.客户编号;

/* 文件名称:CH7_Demo056.sql */ USE 北风贸易; GO

SELECT 客户.客户编号,客户.公司名称,订货主档.订单号码, 订货主档.订单日期,订货明细.产品编号,订货明细.单价, 订货明细.数量, 订货明细.折扣

FROM 客户INNER JOIN 订货主档ON 客户.客户编号= 订货主档.客户编号

INNER JOIN 订货明细ON 订货主档.订单号码= 订货明细.订单号码; /* 文件名称:CH7_Demo057.sql */ USE 北风贸易; GO

SELECT 客户.客户编号, 客户.公司名称, 客户.联系人, 订货主档.订单号码, 订货主档.收货人

FROM 客户LEFT OUTER JOIN 订货主档 ON 客户.客户编号= 订货主档.客户编号

ORDER BY 4 DESC; /* 文件名称:CH7_Demo058.sql */ USE 北风贸易; GO

SELECT 订货明细.订单号码, 订货明细.单价, 订货明细.数量, 订货明细.折扣, 产品数据.产品编号, 产品数据.产品

FROM 订货明细RIGHT OUTER JOIN 产品数据 ON 订货明细.产品编号= 产品数据.产品编号 ORDER BY 5;

/* 文件名称:CH7_Demo059.sql */ USE 北风贸易; GO

SELECT 客户.客户编号, 客户.公司名称, 客户.联系人, 客户.电话,

订货主档.订单号码, 订货主档.订单日期,

订货主档.要货日期, 订货主档.送货日期, 订货主档.送货方式, 订货主档.运费, 订货主档.收货人, 订货主档.送货地址

FROM 客户INNER JOIN 订货主档

ON 客户.客户编号= 订货主档.客户编号; /* 文件名称:CH7_Demo060.sql */ USE 北风贸易; GO

SELECT a.客户编号, a.公司名称, a.联系人, a.电话, b.订单号码, b.订单日期, b.要货日期, b.送货日期, b.送货方式, b.运费, b.收货人, b.送货地址

FROM 客户a INNER JOIN 订货主档b

ON a.客户编号= b.客户编号; /* 文件名称:CH7_Demo061.sql */ USE 北风贸易; GO

SELECT a.客户编号, a.公司名称, a.地址, a.联系人, a.电话, b.订单号码,b.订单日期, b.运费, b.收货人, c.产品编号, c.单价, c.数量, c.折扣

FROM 客户a INNER JOIN 订货主档b ON a.客户编号= b.客户编号 INNER JOIN 订货明细c ON b.订单号码= c.订单号码 WHERE a.地址LIKE '%北京市%' AND

b.订单日期BETWEEN '07/01/1996' AND '07/31/1996'; /* 文件名称:CH7_Demo062.sql */ USE 北风贸易; GO

SELECT a.公司名称,b.订单日期,d.*

FROM 客户a INNER JOIN 订货主档b ON a.客户编号= b.客户编号 INNER JOIN 订货明细c ON b.订单号码= c.订单号码 INNER JOIN 产品数据d ON c.产品编号= d.产品编号

WHERE YEAR(b.订单日期) = 1996; /* 文件名称:CH7_Demo063.sql */ USE 北风贸易; GO

SELECT a.公司名称,b.订单号码,b.订单日期,c.*

FROM 客户a INNER JOIN 订货主档b ON a.客户编号= b.客户编号 INNER JOIN 员工c ON b.员工编号= c.员工编号

WHERE a.公司名称= '正人资源' AND YEAR(b.订单日期) = 1998; /* 文件名称:CH7_Demo0.sql */ USE 北风贸易; GO

SELECT COUNT(*) AS 人数FROM 飞狐工作室; /* 文件名称:CH7_Demo065.sql */ USE 北风贸易; GO

SELECT COUNT(*) AS 人数FROM 飞狐工作室

WHERE 家庭住址LIKE '%北京市%'; /* 文件名称:CH7_Demo066.sql */ USE 北风贸易; GO

SELECT COUNT(*) AS 人数FROM 飞狐工作室

WHERE DATEDIFF(yy,出生日期,GETDATE()) BETWEEN 30 AND 40; /* 文件名称:CH7_Demo067.sql */ USE 北风贸易; GO

SELECT COUNT(*) AS 客户数目

FROM 客户a INNER JOIN 订货主档b ON a.客户编号= b.客户编号 WHERE a.地址LIKE '%北京市%' AND

b.订单日期BETWEEN '07/01/1996' AND '07/31/1996'; /* 文件名称:CH7_Demo068.sql */ USE 北风贸易; GO

SELECT MIN(目前薪水) AS 最低薪水FROM 飞狐工作室; /* 文件名称:CH7_Demo069.sql */

USE 北风贸易; GO

SELECT YEAR(GETDATE()) - YEAR(MIN(出生日期)) AS 最高年龄 FROM 飞狐工作室;

SELECT DATEDIFF(yyyy,MIN(出生日期),GETDATE()) AS 最高年龄 FROM 飞狐工作室;

SELECT MAX(DATEDIFF(yyyy,出生日期,GETDATE())) AS 最高年龄 FROM 飞狐工作室;

/* 文件名称:CH7_Demo070.sql */ USE 北风贸易; GO

SELECT MAX(目前薪水) AS 最高薪水FROM 飞狐工作室; /* 文件名称:CH7_Demo071.sql */ USE 北风贸易; GO

SELECT YEAR(GETDATE()) - YEAR(MAX(出生日期)) AS 最小年龄 FROM 飞狐工作室;

SELECT DATEDIFF(yyyy,MAX(出生日期),GETDATE()) AS 最小年龄 FROM 飞狐工作室;

SELECT MIN(DATEDIFF(yyyy,出生日期,GETDATE())) AS 最小年龄

FROM 飞狐工作室;

/* 文件名称:CH7_Demo072.sql */ USE 北风贸易; GO

SELECT AVG(目前薪水) AS 平均薪水FROM 飞狐工作室; /* 文件名称:CH7_Demo073.sql */ USE 北风贸易; GO

SELECT AVG(DATEDIFF(yyyy,出生日期,GETDATE())) AS 平均年龄

FROM 飞狐工作室;

/* 文件名称:CH7_Demo074.sql */ USE 北风贸易; GO

SELECT SUM(订货明细.单价*订货明细.数量*(1-订货明细.折扣)) AS 客户采买总金额

FROM 订货明细;

/* 文件名称:CH7_Demo075.sql */ USE 北风贸易;

GO

DECLARE @AverageSalary money;

-- 将计算所得的平均薪水储存到变量@AverageSalary 中 SELECT @AverageSalary = AVG(目前薪水) FROM 飞狐工作室;

PRINT '薪水大于平均薪水'+STR(@AverageSalary,10,4)+ ' 的员工如下:'; PRINT REPLICATE('-',35);

SELECT 姓名,目前薪水FROM 飞狐工作室 WHERE 目前薪水> @AverageSalary; /* 文件名称:CH7_Demo076.sql */ USE 北风贸易; GO

SELECT MAX(目前薪水) AS 最高薪水, MIN(目前薪水) AS 最低薪水, AVG(目前薪水) AS 平均薪水, SUM(目前薪水) AS 薪水总额 FROM 飞狐工作室;

/* 文件名称:CH7_Demo077.sql */ USE 北风贸易; GO

SELECT COUNT(DISTINCT 客户编号) AS 客户数目 FROM 订货主档

WHERE 订单日期BETWEEN '08/01/1996' AND '08/31/1996'; /* 文件名称:CH7_Demo078.sql */ USE 北风贸易; GO

SELECT 部门,

COUNT(*) AS 部门员工人数, MAX(目前薪水) AS 部门最高薪水, MIN(目前薪水) AS 部门最低薪水, AVG(目前薪水) AS 部门平均薪水 FROM 飞狐工作室GROUP BY 部门; /* 文件名称:CH7_Demo079.sql */ USE 北风贸易; GO

SELECT a.公司名称,

COUNT(DISTINCT b.订单号码) AS 采购次数,

SUM(c.单价* c.数量* (1 - c.折扣)) AS 采购总金额 FROM 客户a

INNER JOIN 订货主档b ON a.客户编号= b.客户编号 INNER JOIN 订货明细c ON b.订单号码= c.订单号码 GROUP BY a.公司名称;

/* 文件名称:CH7_Demo080.sql */ USE 北风贸易; GO

SELECT a.员工编号, a.姓名, SUM(c.数量) AS 销售总数 FROM 员工a

INNER JOIN 订货主档b ON a.员工编号= b.员工编号 INNER JOIN 订货明细c ON b.订单号码= c.订单号码 GROUP BY a.员工编号, a.姓名; /* 文件名称:CH7_Demo081.sql */ USE 北风贸易; GO

SELECT a.员工编号,a.姓名,SUM(c.数量) AS 销售总数 INTO aMount

FROM 员工a INNER JOIN 订货主档b ON a.员工编号= b.员工编号 INNER JOIN 订货明细c ON b.订单号码= c.订单号码 GROUP BY a.员工编号, a.姓名;

SELECT a.员工编号, a.姓名, a.销售总数,

COUNT(b.员工编号) AS 业绩比此人好的业务员的人数, AVG(b.销售总数) AS 业绩比此人好的业务员的平均销售总数 FROM aMount a, aMount b WHERE a.销售总数< b.销售总数

GROUP BY a.员工编号, a.姓名, a.销售总数;

DROP TABLE aMount;

/* 文件名称:CH7_Demo082.sql */ USE 北风贸易; GO

SELECT 部门,

性别= CASE 员工性别 WHEN 0 THEN '女' WHEN 1 THEN '男' END,

婚姻状况= CASE 婚姻状况

WHEN 0 THEN '未婚'

WHEN 1 THEN '已婚' END,

最低薪水= MIN(目前薪水), 最高薪水= MAX(目前薪水), 平均薪水= AVG(目前薪水) FROM 飞狐工作室 GROUP BY 部门, CASE 员工性别

WHEN 0 THEN '女' WHEN 1 THEN '男' END,

CASE 婚姻状况

WHEN 0 THEN '未婚' WHEN 1 THEN '已婚' END

ORDER BY 部门;

/* 文件名称:CH7_Demo083.sql */ USE 北风贸易; GO

SELECT 部门,AVG(目前薪水) AS 部门平均薪水 FROM 飞狐工作室

WHERE 家庭住址LIKE '%长春市%'

GROUP BY 部门;

/* 文件名称:CH7_Demo084.sql */ USE 北风贸易; GO

SELECT 部门,AVG(目前薪水) AS 部门平均薪水 FROM 飞狐工作室

WHERE 家庭住址LIKE '%长春市%'

GROUP BY ALL 部门; /* 文件名称:CH7_Demo085.sql */ USE 北风贸易; GO

SELECT 部门,

AVG(目前薪水) AS 部门的平均薪水, COUNT(*) AS 各部门的人数, MAX(目前薪水) AS 部门中的最高薪, MIN(目前薪水) AS 部门中的最低薪 FROM 飞狐工作室 GROUP BY 部门

HAVING AVG(目前薪水) > 3000;

/* 文件名称:CH7_Demo086.sql */ USE 北风贸易; GO

SELECT 姓名AS 重复的姓名, COUNT(*) AS 重复的人数 FROM 飞狐工作室

GROUP BY 姓名

Having COUNT(*) > 1; /* 文件名称:CH7_Demo087.sql */ USE 北风贸易; GO

SELECT a.公司名称,

COUNT(DISTINCT b.订单号码) AS 订单张数,

SUM(c.单价* c.数量* (1 - c.折扣)) AS 采购总金额 FROM 客户a

INNER JOIN 订货主档b INNER JOIN 订货明细c ON b.订单号码= c.订单号码 ON a.客户编号= b.客户编号 GROUP BY a.公司名称

HAVING COUNT(DISTINCT b.订单号码) > 10; /* 文件名称:CH7_Demo088.sql */ USE 北风贸易; GO

SELECT 姓名,

性别= CASE 员工性别 WHEN 0 THEN '女' WHEN 1 THEN '男' END, 目前薪水 FROM 飞狐工作室

ORDER BY 目前薪水DESC; /* 文件名称:CH7_Demo0.sql */ USE 北风贸易; GO

SELECT 部门, AVG(目前薪水) AS 平均薪水 FROM 飞狐工作室 GROUP BY 部门

ORDER BY 2;

/* 文件名称:CH7_Demo090.sql */ USE 北风贸易;

GO

SELECT 部门, 姓名,

性别= CASE 员工性别 WHEN 0 THEN '女' WHEN 1 THEN '男' END, 目前薪水 FROM 飞狐工作室

ORDER BY 部门,性别DESC,目前薪水DESC; /* 文件名称:CH7_Demo091.sql */ USE 北风贸易; GO

SELECT a.公司名称,

COUNT(DISTINCT b.订单号码) AS 采购次数,

SUM(c.单价* c.数量* (1 - c.折扣)) AS 采购总金额 FROM 客户a

INNER JOIN 订货主档b INNER JOIN 订货明细c ON b.订单号码= c.订单号码 ON a.客户编号= b.客户编号 GROUP BY a.公司名称 ORDER BY 2 DESC, 3;

/* 文件名称:CH7_Demo092.sql */ USE 北风贸易; GO

SELECT TOP (1)

姓名AS 薪水最低的员工姓名, 目前薪水 FROM 飞狐工作室

ORDER BY 目前薪水;

/* 文件名称:CH7_Demo093.sql */ USE 北风贸易; GO

SELECT TOP (1)

姓名AS 薪水最高的员工姓名, 目前薪水 FROM 飞狐工作室

ORDER BY 目前薪水DESC; /* 文件名称:CH7_Demo094.sql */

USE 北风贸易; GO

SELECT TOP (10)

姓名AS 薪水最高前十名的员工姓名, 目前薪水 FROM 飞狐工作室

ORDER BY 目前薪水DESC; /* 文件名称:CH7_Demo095.sql */ USE 北风贸易; GO

SELECT TOP (10)

姓名AS 薪水倒数十名的员工姓名, 目前薪水 FROM 飞狐工作室

ORDER BY 目前薪水;

/* 文件名称:CH7_Demo096.sql */ USE 北风贸易; GO

SELECT TOP (3)

部门AS 平均薪水最高的前三个部门, AVG(目前薪水) AS 平均薪水 FROM 飞狐工作室 GROUP BY 部门

ORDER BY 2 DESC;

/* 文件名称:CH7_Demo097.sql */ USE 北风贸易; GO

SELECT TOP (10) PERCENT 姓名, 目前薪水 FROM 飞狐工作室

ORDER BY 目前薪水DESC; /* 文件名称:CH7_Demo098.sql */ USE 北风贸易; GO

SELECT TOP (3)

a.员工编号, a.姓名AS 业务员姓名,

SUM(c.单价* c.数量*(1 - c.折扣)) AS 销售总金额 FROM 员工a

INNER JOIN 订货主档b ON a.员工编号= b.员工编号 INNER JOIN 订货明细c ON b.订单号码= c.订单号码 GROUP BY a.员工编号,a.姓名

ORDER BY 3 DESC; /* 文件名称:CH7_Demo099.sql */ USE 北风贸易; GO

SELECT TOP (1) a.公司名称,

COUNT(DISTINCT b.订单号码) AS 采购次数,

SUM(c.单价* c.数量* (1 - c.折扣)) AS 采购总金额 FROM 客户a

INNER JOIN 订货主档b ON a.客户编号= b.客户编号 INNER JOIN 订货明细c ON b.订单号码= c.订单号码 WHERE YEAR(b.订单日期) = 1996 GROUP BY a.公司名称

ORDER BY 3 DESC;

/* 文件名称:CH7_Demo100.sql */ USE 北风贸易; GO

DECLARE @MyTop AS int; SET @MyTop = 10;

SELECT TOP (@MyTop + 5) * FROM 章立民研究室ORDER BY 员工编号DESC;

GO /* 文件名称:CH7_Demo101.sql */ USE 北风贸易; GO SELECT TOP (

SELECT COUNT(*) FROM 飞狐工作室 WHERE 目前薪水> 6000 )

姓名,目前薪水FROM 飞狐工作室ORDER BY 目前薪水DESC; /* 文件名称:CH7_Demo102.sql */ USE 北风贸易; GO

SELECT 订货主档.订单号码,订货主档.订单日期, (SELECT MAX(订货明细.单价) FROM 订货明细

WHERE 订货明细.订单号码= 订货主档.订单号码) AS 最高单价

FROM 订货主档;

/* 文件名称:CH7_Demo103.sql */ USE 北风贸易; GO

SELECT au_lname, au_fname FROM authors WHERE au_id IN

(SELECT au_id FROM titleauthor WHERE title_id IN

(SELECT title_id FROM titles WHERE type = 'popular_comp'));

/* 文件名称:CH7_Demo104.sql */ USE 北风贸易; GO

SELECT a.姓名, a.目前薪水 FROM 飞狐工作室a WHERE a.目前薪水=

(SELECT MIN(b.目前薪水) FROM 飞狐工作室b); /* 文件名称:CH7_Demo105.sql */ USE 北风贸易; GO

SELECT a.姓名, a.目前薪水FROM 飞狐工作室a WHERE a.目前薪水>

(SELECT AVG(b.目前薪水) * 1.50 FROM 飞狐工作室b) ORDER BY a.目前薪水;

/* 文件名称:CH7_Demo106.sql */ USE 北风贸易; GO

SELECT T.title_id, S.stor_id, ST.stor_name, city, state, Revenue=T.price*S.qty FROM titles T

INNER JOIN sales S ON T.title_id=S.title_id INNER JOIN stores ST ON S.stor_id=ST.stor_id WHERE T.price*S.qty <

(SELECT 0.80*AVG(price*qty) FROM titles T2

INNER JOIN sales S2

ON T2.title_id=S2.title_id

WHERE T.title_id=T2.title_id ); /* 文件名称:CH7_Demo107.sql */

USE 北风贸易; GO

SELECT 部门,

COUNT(*) AS 部门人数, AVG(目前薪水) AS 平均薪水 FROM 飞狐工作室 GROUP BY 部门

HAVING COUNT(*) >

(SELECT COUNT(*) FROM 飞狐工作室WHERE 部门= '业务部'); /* 文件名称:CH7_Demo108.sql */ USE 北风贸易; GO SELECT TOP (

SELECT COUNT(*) FROM 飞狐工作室 WHERE 目前薪水> (

SELECT MAX(目前薪水) FROM 飞狐工作室 WHERE 部门= '业务部' ) )

姓名,目前薪水FROM 飞狐工作室ORDER BY 目前薪水DESC; /* 文件名称:CH7_Demo109.sql */ USE 北风贸易; GO

-- 使用内部查询

-- 查询有哪些产品的单价与蕃茄酱相同 SELECT 产品FROM 产品数据 WHERE 单价=

(SELECT 单价FROM 产品数据WHERE 产品= '蕃茄酱');

-- 使用连接表

-- 查询有哪些产品的单价与蕃茄酱相同

SELECT Product1.产品FROM 产品数据AS Product1 INNER JOIN 产品数据AS Product2 ON Product1.单价= Product2.单价

WHERE Product2.产品= '蕃茄酱'; /* 文件名称:CH7_Demo110.sql */ USE 北风贸易; GO

SELECT 客户.客户编号,客户.公司名称FROM 客户 WHERE NOT EXISTS

(SELECT * FROM 订货主档

WHERE 订货主档.客户编号= 客户.客户编号); /* 文件名称:CH7_Demo111.sql */ USE 北风贸易; GO

SELECT ST.stor_id, ST.stor_name, ST.city, ST.state FROM stores ST WHERE NOT EXISTS

(

WHERE NOT EXISTS

(

SELECT * FROM titles T1

SELECT * FROM titles T2

INNER JOIN sales SA ON T2.title_id = SA.title_id

WHERE T2.title_id = T1.title_id AND ST.stor_id = SA.stor_id )

);

/* 文件名称:CH7_Demo112.sql */ USE 北风贸易; GO

SELECT a.公司名称FROM 客户a WHERE a.客户编号NOT IN

(SELECT b.客户编号FROM 订货主档b); /* 文件名称:CH7_Demo113.sql */ USE 北风贸易; GO

SELECT a.公司名称FROM 客户a WHERE a.客户编号IN

(SELECT b.客户编号FROM 订货主档b); /* 文件名称:CH7_Demo114.sql */ USE 北风贸易; GO

SELECT 姓名AS 重复的姓名,电话号码,家庭住址FROM 飞狐工作室 WHERE 姓名IN (

SELECT 姓名FROM 飞狐工作室GROUP BY 姓名Having COUNT(*) > 1 /* 文件名称:CH7_Demo115.sql */ USE 北风贸易;

GO

SELECT a.姓名, a.目前薪水FROM 飞狐工作室a WHERE a.目前薪水> ALL

(SELECT b.目前薪水FROM 飞狐工作室b

WHERE b.部门= '财务部'); /* 文件名称:CH7_Demo116.sql */ USE 北风贸易; GO

SELECT a.姓名, a.目前薪水FROM 飞狐工作室a WHERE a.目前薪水< ALL

(SELECT b.目前薪水FROM 飞狐工作室b

WHERE b.部门= '财务部'); /* 文件名称:CH7_Demo117.sql */ USE 北风贸易; GO

SELECT a.姓名, a.目前薪水FROM 飞狐工作室a WHERE a.目前薪水> ANY

(SELECT b.目前薪水FROM 飞狐工作室b

WHERE b.部门= '财务部'); /* 文件名称:CH7_Demo118.sql */ USE 北风贸易; GO

SELECT * FROM (SELECT * FROM 章立民研究室) AS liming; /* 文件名称:CH7_Demo119.sql */ USE 北风贸易; GO

SELECT C.类别编号, C.类别名称, P.产品, P.单价, CT.类别数目 FROM 产品类别C

INNER JOIN 产品数据P ON C.类别编号= P.类别编号 INNER JOIN (

SELECT C.类别编号, COUNT(*) AS 类别数目FROM 产品类别C INNER JOIN 产品数据P ON C.类别编号= P.类别编号 GROUP BY C.类别编号, C.类别名称 ) AS CT ON C.类别编号= CT.类别编号 ORDER BY C.类别名称;

GO

/* 文件名称:CH7_Demo120.sql */ USE 北风贸易;

GO

SELECT Source1.员工编号, Source1.姓名, Source1.销售总数, COUNT(Source2.员工编号) AS 业绩比此人好的业务员的人数, AVG(Source2.销售总数) AS 业绩比此人好的业务员的平均销售总数 FROM (

SELECT a.员工编号,a.姓名,SUM(c.数量) AS 销售总数

FROM 员工a INNER JOIN 订货主档b ON a.员工编号= b.员工编号 INNER JOIN 订货明细c ON b.订单号码= c.订单号码 GROUP BY a.员工编号,a.姓名 ) AS Source1 INNER JOIN (

SELECT a.员工编号,a.姓名,SUM(c.数量) AS 销售总数

FROM 员工a INNER JOIN 订货主档b ON a.员工编号= b.员工编号 INNER JOIN 订货明细c ON b.订单号码= c.订单号码 GROUP BY a.员工编号,a.姓名 ) AS Source2

ON Source1.销售总数< Source2.销售总数

GROUP BY Source1.员工编号,Source1.姓名,Source1.销售总数 ORDER BY 1;

GO

/* 文件名称:CH7_Demo121.sql */ USE AdventureWorks ; GO

SELECT RTRIM(c.FirstName) + ' ' + LTRIM(c.LastName) AS Name, d.City

FROM Person.Contact c

INNER JOIN HumanResources.Employee e ON c.ContactID = e.ContactID INNER JOIN

(SELECT ea.AddressID, ea.EmployeeID, a.City FROM Person.Address a

INNER JOIN HumanResources.EmployeeAddress ea ON a.AddressID = ea.AddressID) AS d ON e.EmployeeID = d.EmployeeID

ORDER BY c.LastName, c.FirstName; /* 文件名称:CH7_Demo122.sql */ USE 北风贸易; GO

SELECT DISTINCT c1.联系人, c1.地址, c1.城市, c1.行政区

FROM 客户AS c1 INNER JOIN 客户AS c2 ON c1.行政区= c2.行政区

AND c1.联系人<> c2.联系人 ORDER BY c1.行政区, c1.联系人; /* 文件名称:CH7_Demo123.sql */ USE 北风贸易; GO

SELECT DISTINCT a.姓名,a.部门, a.家庭住址 FROM 飞狐工作室a INNER JOIN 飞狐工作室b

ON a.姓名= b.姓名AND a.部门<> b.部门; /* 文件名称:CH7_Demo124.sql */ USE 北风贸易; GO

SELECT DISTINCT pv1.产品编号, pv1.供应商编号

FROM 产品数据pv1 INNER JOIN 产品数据pv2 ON pv1.产品编号= pv2.产品编号 AND pv1.供应商编号<> pv2.供应商编号

ORDER BY pv1.产品编号; /* 文件名称:CH7_Demo125.sql */ USE 北风贸易; GO

SELECT 部门, [男] AS 男性, [女] AS 女性 FROM

(SELECT 员工编号, 性别, 部门FROM 章立民研究室) liming PIVOT (

COUNT(员工编号)

FOR 性别IN ([男], [女]) ) AS pvt

ORDER BY 部门;

/* 文件名称:CH7_Demo136.sql */ USE 北风贸易; GO

SELECT * FROM 成绩_2003 UNION ALL

SELECT * FROM 成绩_2004 UNION ALL

SELECT * FROM 成绩_2005; /* 文件名称:CH7_Demo137.sql */ USE 北风贸易; GO

SELECT 身份证号码AS 学生代号, 语文成绩AS 语文成绩FROM 成绩_2003 UNION ALL

SELECT 身份证号码, 语文成绩FROM 成绩_2004 UNION ALL

SELECT 身份证号码, 语文成绩FROM 成绩_2005; /* 文件名称:CH7_Demo138.sql */ USE 北风贸易; GO

IF OBJECT_ID(N'Score', N'U') IS NOT NULL DROP TABLE Score; GO

-- 将合并后的结果储存到一个名为Score的新表中 SELECT 身份证号码AS 学生代号, 语文成绩AS 语文成绩 INTO Score FROM 成绩_2003 UNION ALL

SELECT 身份证号码, 语文成绩FROM 成绩_2004 UNION ALL

SELECT 身份证号码, 语文成绩FROM 成绩_2005;

-- 查询Score表

SELECT * FROM Score; /* 文件名称:CH7_Demo139.sql */ USE 北风贸易; GO

IF OBJECT_ID(N'Score', N'U') IS NOT NULL DROP TABLE Score; GO

-- 将合并后的结果储存到一个名为Score的新表中

SELECT 身份证号码AS 学生代号, 语文成绩AS 语文成绩INTO Score FROM 成绩_2003 UNION ALL

SELECT 身份证号码, 语文成绩FROM 成绩_2004 UNION ALL

SELECT 身份证号码, 语文成绩FROM 成绩_2005 ORDER BY 学生代号DESC;

-- 查询Score表

SELECT * FROM Score;

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务