SQL SERVER语法,一些很实用的小例子,做了个总结。
CTE递归
第一个:SQL SERVER内置递归函数,即CTE
公用表达式的定义如下,只包含三部分:
- 公用表表达式的名字(在WITH之后)
- 所涉及的列名(可选)
- 一个SELECT语句(紧跟AS之后)
语法如下:
WITH expression_name [ ( column_name [,...n] ) ]
AS
( CTE_query_definition )
示例:
表结构:
代码贴出来如下:
Declare @Id Int
Set @Id = 0; ---在此修改父节点
With RootNodeCTE(Id,ParentId)
As
(
Select Id,ParentId From IT_CourseClass Where ParentId In (@Id)
Union All
Select IT_CourseClass.Id,IT_CourseClass.ParentId From RootNodeCTE
Inner Join IT_CourseClass
On RootNodeCTE.Id = IT_CourseClass.ParentId
)
Select * From RootNodeCTE
执行以上代码结果如下
第二个:SQL Server Date 函数之DATEADD()
定义:DATEADD()只在日期添加或者减去的时间间隔。
语法规则:DATEADD(Depart,number,date)
PS:
用例:比如在做查询最近更新的数据的时候,或者最近时间段内,访问次数最多的或者访问最近的记录的时候,可以此函数。
示例:我的数据表中的更新时间是各种时候的,但是我要查询最近更新的,显示到首页,那这个在这里怎么运用呢?
SQL语句:
select * from IT_Exampaper where AddTime between dateadd(mm,-4,getDate()) and getDate()
ateadd(mm,-4,getDate()) 中的mm:月份,-4即当前时间的前四个月,getdate();
查询结果:
那么查询出来的结果就是这两条最近更新的了。
第三个:SQL BETWEEN操作符
BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。
操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
SQL BETWEEN 语法
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
实例:
SQL语句:
SELECT * FROM Persons
WHERE LastName
BETWEEN 'Adams' AND 'Carter'
结果集:
好了,这是本人平时用的比较多的一些函数,希望大家能有借鉴之处吧,另外声明:(第三个中截图是来W3CSCHOOL SQL教程中的。)