`
pumaboyd
  • 浏览: 248378 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL2005-CTE的使用

    博客分类:
  • DBA
阅读更多

CTE的使用确实可以简化代码,明晰逻辑,特别是在构建一些查询表的时候。以前用#tempTable方式比较麻烦。这一周够忙得,写这个算是带来一些乐趣。(*^__^*)。

需求描述:

1:按一定规则计算榜单的鲜花总得分
2:按 鲜花总分、城市数、商户总数、回应等比例计算Hot值
3:写入特定表

代码实现(伪代码):


--活动的总热度分值(CTE1)
WITH QUERY_MyListTotalScore AS
(
SELECT 
SUM(...)AS Score
,VoteID AS ListID
FROM [鲜花Tabel] WHERE (...)
),
--榜单城市的比例分值(CTE2)
QUERY_MyListCityCount AS
(
SELECT COUNT(*) AS CityCount,ListID,CityID,ShopCount
FROM [榜单商户]
JOIN [榜单] L ON (...)
JOIN [商户] S ON (...)
GROUP BY CityID,ListID,ShopCount
),
--最后生成结果(CTE3)
QUERY_MyListHot AS
(
SELECT ListID,CityID,Score,CityCount,ShopCount,........ AS Hot
FROM QUERY_MyListCityCount C
LEFT JOIN QUERY_MyListTotalScore T ON C.ListID = T.ListID
)
--相关表操作(SELECT、UPDATE、 INSERT、DELETE)
SELECT * FROM QUERY_MyListHot ORDER BY ListID

关键是CTE的多表连接使用。一般情况我们也就用一个CTE。这里要注意的就是多表CTE,要使用“,”分割。开始我习惯的用“;”提示错误,以为CTE不支持联用,险些就不用CTE了。

Google 标记: SQL2005, CTE
分享到:
评论

相关推荐

    Laravel开发-laravel-cte

    CTE是SQL标准的一部分,它允许在查询中定义一个临时的结果集,这个结果集可以在同一个查询的其他部分中重复使用。CTE提高了代码的可读性和可维护性,尤其是在处理递归查询或复杂的联接操作时。 二、Laravel中的CTE...

    sqlserver 2005 使用CTE 实现递归

    ### SQL Server 2005 中使用 CTE 实现递归 #### 一、CTE 递归原理 在 SQL Server 2005 中,使用公共表表达式(Common Table Expression, CTE)实现递归是一种高效且直观的方式。递归 CTE 通常由两部分构成:定位...

    sql写法_CTE

    ### SQL中的CTE(公用表表达式)详解 在数据库操作中,经常需要处理复杂的查询逻辑,特别是当涉及到多表连接、嵌套查询时。为了提高SQL查询的可读性和可维护性,引入了CTE(Common Table Expression,公用表表达式...

    [sql server] SQL Server2005杂谈(1):使用公用表表达式(CTE)简化嵌套SQL

    SQL Server 2005 中使用公用表表达式(CTE)简化嵌套 SQL SQL Server 2005 中的公用表表达式(CTE)是一种强大的工具,可以简化嵌套的 SQL 语句,提高代码的可维护性和性能。本文将介绍 CTE 的基本概念、语法和使用...

    SQL SERVER的CTE用法

    CTE的使用开始于`WITH`关键字,定义了一个名为`cte`的公共表表达式。这个CTE的作用是找出每个产品名称对应的最小尺码,然后通过递归的方式将所有小于最小尺码的尺码用逗号连接起来。CTE的定义如下: ```sql with ...

    SQL2005查询工具 SQLServer2005_SSMSEE

    1. **T-SQL增强**:SQL Server 2005引入了新的T-SQL语言特性,如Cursors的改进、窗口函数、 Common Table Expressions (CTE)、Table Value Parameters 和 PIVOT/UNPIVOT操作等,使得查询编写更为灵活和强大。...

    sql server 2012 T-SQl基础教程 源码和示例数据库

    3. **Chapter 05 - Table Expressions**:此部分深入介绍了表表达式,如派生表、子查询、常见表表达式(CTE)以及如何使用它们进行复杂查询。 4. **Chapter 07 - Beyond the Fundamentals of Querying**:这个章节...

    SqlServer 2005 T-SQL Query 学习笔记(1)

    CTE是SQL Server 2005引入的新特性,它允许定义一个临时的结果集,可以在后续的查询中重复使用。CTE的语法格式如下: ```sql WITH cte_name AS (cte_query) outer_query_refferring_to_cte_name; ``` CTE可以提供...

    SQL Server 2005 Beta 2 Transact-SQL 增强功能

    SQL Server 2005 Beta 2带来了对Transact-SQL的显著增强,这些改进主要集中在提升查询表达能力、数据完整性(DRI)支持、性能优化以及错误处理方面。以下是对这些增强功能的详细说明: 1. **排序函数**: SQL ...

    Microsoft_SQL_Server_2005技术内幕:T-SQL查询.pdf

     使用CTE和排名函数简化及优化解决方案;  用各种技术聚合数据,包括附加属性、旋转、直方图和分组因子;  在查询中用TOP选项修改数据;  用递归逻辑、具体化路径或嵌套集合解决方案查询特殊的数据结构;  通过...

    SQLserver CTE With

    SQLserver CTE With 使用with产出临时表,在根据临时表二次查询

    [sql server]SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用.doc

    "SQL Server 2005 杂谈:公用表表达式(CTE)的递归调用" 本文主要介绍了 SQL Server 2005 中公用表表达式(CTE)的递归调用,用于解决树型结构数据的查询问题。CTE 是 SQL Server 2005 中的一种新的查询方式,它...

    SQL Server 2005 T-SQL增强

    6. **游标改进**:虽然不推荐在性能关键的代码中大量使用游标,但SQL Server 2005对游标进行了优化,提供了更多控制选项,使其在某些场景下更实用。 7. **OUTPUT子句**:OUTPUT子句允许在DML语句(如INSERT, UPDATE...

    [电子书] SQL Server 2012 T-SQL 实用技巧 (英文版)

    4. **子查询与CTE**:深入探讨子查询的使用,以及如何利用公用表表达式(Common Table Expression, CTE)简化复杂查询。 5. **插入、更新和删除数据**:讲述INSERT、UPDATE和DELETE语句的操作方法,以及如何使用...

    sql里面 with...as 是什么意思?如何使用?

    在SQL中,`WITH...AS`是一种非常有用的特性,主要用于定义公用表表达式(Common Table Expression,简称CTE)。通过CTE,我们可以更清晰地组织复杂的查询语句,并且能够提高某些类型查询的性能。 #### 一、基本概念...

    SQL Server CTE 递归查询全解1

    SQL Server中的递归查询主要通过CTE(公共表表达式)来实现,它是一种非常强大的工具,特别适用于处理层次结构数据。CTE是T-SQL脚本中的临时结果集,可以用于复杂的查询,尤其是需要递归操作的情况。本文将深入探讨...

    SQL Server T-SQL Recipes, 4th Edition

    - **变量**: 介绍如何在T-SQL中定义和使用变量。 - **流程控制**: 讨论`IF...ELSE`, `WHILE`, `CASE`等结构的使用方法,以实现更复杂的逻辑处理。 - **错误处理**: 探讨如何捕获和处理执行过程中的异常情况。 **3. ...

    sql-99-bnf.tar.gz_Sql bnf_bnf范式 sql

    4. **子查询**:在SQL-99中,你可以嵌套查询,即在一个查询内部使用另一个查询,以实现更复杂的查询逻辑。 5. **集合操作**:包括`UNION`、`INTERSECT`和`EXCEPT`,这些用于合并或比较多个查询的结果集。 6. **...

    sql server 2005脚本

    SQL Server 2005对T-SQL进行了扩展,添加了新的语法元素和函数,如窗口函数(OVER子句)、公用表表达式(CTE)、递归查询以及WITH关键字。这些功能使得复杂的数据处理和分析变得更加高效。 2. **存储过程和触发器*...

Global site tag (gtag.js) - Google Analytics