zoukankan      html  css  js  c++  java
  • Sql Server2005对tsql的增强之通用表表达式CTE

     CTECommon Table Expression的简写,翻译成中文就是通用表表达式,它可以在selectinsert或者update中使用。

    为了说明问题,我们先随便建张表,插入几条数据:
    if object_id('t','U') is not null --object_id函数判断表是否在数据库中存在很简洁
    drop table t;
    GO
    create table t(c1 int,c2 decimal,c3 int);
    GO
    INSERT INTO t
    SELECT c1 = 1,c2 = 5.0,c3=10
    UNION
    SELECT c1 = 2,c2 = 5.5,c3=10
    UNION
    SELECT c1 = 3,c2 = 5.0,c3=20
    UNION
    SELECT c1 = 4,c2 = 5.5,c3=20
    --下面我们使用CTE写一个分页的sql语句
    GO
    WITH t_cn AS
    (   
    select c1,c2,c3,rn = ROW_NUMBER() OVER(ORDER BY c1 DESC) FROM t WHERE 0 = 0 --
    可以在此处添加一些条件
    )
    SELECT c1,c2,c3 FROM t_cn WHERE rn between 2 and 3
    SELECT totalCn = COUNT(*) FROM t WHERE 0 = 0

    这就是一个最最简单的示例了,这样写出来的分页是不是很简洁?CTE还可以用在insertupdate中用法大同小异,就不一一列举。

  • 相关阅读:
    Java8新特性
    搜索解决方案 -- ElasticSearch入门
    插入排序
    单点登录系统CAS入门
    快速排序
    选择性排序
    冒泡排序
    springcloud入门
    消息中间件 -- RabbitMQ
    ActiveMQ中消息的重发与持久化保存
  • 原文地址:https://www.cnblogs.com/yukaizhao/p/cte_sql.html
Copyright © 2011-2022 走看看