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