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

posted @ 2013-01-07 10:29  VORO  阅读(123)  评论(0编辑  收藏  举报