Beginning C# 2008 Databases 笔记(一)
Beginning C# 2008 Databases Chapter 4 里的主要内容:
• PIVOT operator
PIVOT 是新引入SQL Server 2005的运算符,它让你能够将行级数据旋转成为列表数据,而不需要像先前版本的SQL Server一样使用CASE语句。
例子:
表 Sales.CreditCard 其中有 CardType, ExpYear 等字段。
我们现要查询不同的CardType所对应的ExpYear分别为2006和2007的统计。
• ROW_NUMBER() function & PARTITION BY clause
ROW_NUMBER() 作用是对结果按给定列排序并生成一个新列显示行号。
只有应用了ROW_NUMBER() 方法的地方,我们才能使用PARTITION BY 从句。
它能实现更强大的功能。
然后在这基础上对Column1中的同一个值所对应的那些行再应用
• Pattern matching
1.#表示任意多个字符
2._表示任意单字符
3.[]表示单字符匹配范围。例:[a-f]
4.[^]表示单字符不匹配范围。例:[^a-f]
• Aggregate functions
MIN() MAX() SUM() AVG() COUNT()
COUNT() 方法参数若为某明确的列名,则返回值中会忽略该列中值为 null 的行。
• DATETIME functions
很简单,例子:
select
current_timestamp 'standard datetime',
getdate() 'Transact-SQL datetime',
datepart(year, getdate()) 'datepart year',
year(getdate()) 'year function',
datepart(hour, getdate()) 'hour'
• Joins
很简单,主要介绍了Inner Join。
例子:an Inner Join of Three Tables
select
o.orderid OrderID,
c.companyname CustomerName,
e.lastname Employee
from
orders o inner join employees e on o.employeeid = e.employeeid
inner join customers c on o.customerid = c.customerid
其他 Join:LEFT OUTER JOIN, RIGHT OUTER JOIN,
FULL OUTER JOIN, UNION JOIN, and CROSS JOIN.
• PIVOT operator
PIVOT 是新引入SQL Server 2005的运算符,它让你能够将行级数据旋转成为列表数据,而不需要像先前版本的SQL Server一样使用CASE语句。
例子:
表 Sales.CreditCard 其中有 CardType, ExpYear 等字段。
我们现要查询不同的CardType所对应的ExpYear分别为2006和2007的统计。
select CardType ,[2006] as Year2006,[2007] as Year2007
from
(
select CardType,ExpYear
from Sales.CreditCard
)piv Pivot
(
count(ExpYear) for ExpYear in ([2006],[2007])
)as carddetail
order by CardType
这里还有一个例子from
(
select CardType,ExpYear
from Sales.CreditCard
)piv Pivot
(
count(ExpYear) for ExpYear in ([2006],[2007])
)as carddetail
order by CardType
• ROW_NUMBER() function & PARTITION BY clause
ROW_NUMBER() 作用是对结果按给定列排序并生成一个新列显示行号。
ROW_NUMBER() over (order by ColumnName) as [RowCount]
只有应用了ROW_NUMBER() 方法的地方,我们才能使用PARTITION BY 从句。
它能实现更强大的功能。
ROW_NUMBER() over (partition by Column1 order by Column2)
as [RowCount]
结果会先按照Column1中的值进行排序,as [RowCount]
然后在这基础上对Column1中的同一个值所对应的那些行再应用
ROW_NUMBER() over (order by Column2) as [RowCount]
• Pattern matching
1.#表示任意多个字符
2._表示任意单字符
3.[]表示单字符匹配范围。例:[a-f]
4.[^]表示单字符不匹配范围。例:[^a-f]
• Aggregate functions
MIN() MAX() SUM() AVG() COUNT()
COUNT() 方法参数若为某明确的列名,则返回值中会忽略该列中值为 null 的行。
• DATETIME functions
很简单,例子:
select
current_timestamp 'standard datetime',
getdate() 'Transact-SQL datetime',
datepart(year, getdate()) 'datepart year',
year(getdate()) 'year function',
datepart(hour, getdate()) 'hour'• Joins
很简单,主要介绍了Inner Join。
例子:an Inner Join of Three Tables
select
o.orderid OrderID,
c.companyname CustomerName,e.lastname Employee
from
orders o inner join employees e on o.employeeid = e.employeeid
inner join customers c on o.customerid = c.customeridFULL OUTER JOIN, UNION JOIN, and CROSS JOIN.
浙公网安备 33010602011771号