sql server 2008语言基础: T-sql语言基础2简单技巧

--select * from Sales.Orders 
--where orderdate>='2007-06-01' and orderdate<'2007-07-01'
--获得每个月的最后一天, 原理. 随意取一个有31天的月. 比如1月31
--然后加上一个月, 得到2月31. 实际上不存在这天, 应该是2月28或者29. 
--select DATEADD(MONTH, 1, '2012-03-31')


--返回姓氏里面包含字母a两次或者更多次数的雇员.
--select * from hr.Employees where lastname like '%a%a%'

--返回总价格(数量乘以单价)大于10000的订单.
--select orderid, sum(qty*unitprice) from sales.OrderDetails 
--group by orderid having sum(qty*unitprice)>10000

--返回2007年平均运费最高的三个发货国家
--select top 3 shipcountry, AVG(freight) from sales.Orders 
--where orderdate>='2007-1-1' and orderdate<'2008-1-1'
--group by shipcountry order by AVG(freight) desc

--为每个顾客单独根据订单日期的顺序(用orderid作为附加属性)来计算其订单的行号.
--select custid, orderdate, orderid, 
--ROW_NUMBER() over(partition by custid order by orderdate) 
--from sales.Orders 

--排序. 空值null必须排在所有有值的数据之后. 默认是在所有之前的.
select custid, region from Sales.Customers
order by case when region is null then 1 else  0 end, region
posted @ 2012-03-31 18:14  MyCoolDog  阅读(346)  评论(0编辑  收藏  举报