SQLServer WITH 的用法


经常写一些联合查询,联合一多了,代码就成倍的增加,时间一长,连我自己也看不懂到底是什么意思了。做Oracle 的时候,就看到有个 WITH, 不过没有深入的看,就会 WITH 一个出来。

前几天又想用这个WITH,于是细心的查查了,原来 WITH 多个 联系查询的语法是这样的:

 WITH PPC AS (
  SELECT
    A.*
  FROM(
    SELECT
      ROW_NUMBER() OVER (PARTITION BY PPCMemberID ORDER BY CreatedOn DESC) AS RN,
      PPCMemberID,PPC,DailyBudget,CreatedOn
    FROM
  CSK_Store_PPCBudgetHistory
  ) A
  WHERE RN = 1
),
PPCM AS (SELECT PPCMemberID,RetailerID FROM CSK_Store_PPCMember),
RP AS (SELECT RetailerID,ProductID,PurchaseURL FROM CSK_Store_RetailerProduct WHERE ProductID = 1337534)
SELECT
  RP.*,
  PPCM.PPCMemberID,
  PPC.PPC,PPC.DailyBudget
FROM
  RP LEFT JOIN
  PPCM ON RP.RetailerID = PPCM.RetailerID LEFT JOIN
  PPC ON PPC.PPCMemberID = PPCM.PPCMemberID


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM