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

posted @ 2012-04-24 11:42  pnljs  阅读(10471)  评论(0编辑  收藏  举报