sql server 的一些记录
下面记录一些用到sql server查询时候用到的函数。
charindex,在一个表达式中搜索另一个表达式并返回其起始位置(如果找到)。http://msdn.microsoft.com/zh-cn/library/ms186323.aspx
CHARINDEX ( expressionToFind ,expressionToSearch [ , start_location ] )
执行区分大小写的搜索
USE tempdb; GO --perform a case sensitive search SELECT CHARINDEX ( 'TEST', 'Das ist ein Test' COLLATE Latin1_General_CS_AS);
执行不区分大小写的搜索
USE tempdb; GO SELECT CHARINDEX ( 'TEST', 'Das ist ein Test' COLLATE Latin1_General_CI_AS) GO
order by,对查询所返回的数据进行排序。http://msdn.microsoft.com/zh-cn/library/ms188385
ORDER BY order_by_expression [ COLLATE collation_name ] [ ASC | DESC ] [ ,...n ] [ <offset_fetch> ] <offset_fetch> ::= { OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS } [ FETCH { FIRST | NEXT } {integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY ] }
将表达式指定为排序列
USE AdventureWorks2012; Go SELECT BusinessEntityID, JobTitle, HireDate FROM HumanResources.Employee ORDER BY DATEPART(year, HireDate);
指定条件顺序
SELECT BusinessEntityID, LastName, TerritoryName, CountryRegionName FROM Sales.vSalesPerson WHERE TerritoryName IS NOT NULL ORDER BY CASE CountryRegionName WHEN 'United States' THEN TerritoryName ELSE CountryRegionName END;
自己使用了一个需要排序某个值靠前。
select pagename, CASE pagename WHEN 'home' THEN -1 else 1 end orderNum from friendlink group by pagename order by orderNum,pagename asc