选择与精选vs CTE-效果

时间:2019-04-15 11:54:32

标签: sql-server tsql

select在内部使用select和避免在select内部使用select与CTE有什么区别?

当我看到执行计划时,执行计划没有区别吗?

这有什么区别吗? 当我使用CTE时,它会执行一次还是每当我在select内部调用CTE时,都会被多次调用?

SELECT ID,
(SELECT TOP 1 [TEXT] FROM TABLEB B 
WHERE B.NAME ='ABC' AND B.CUSTOMER='ABC'
AND B.SERVICE=A.SERVICE AND B.USERID=DBO.fnGetUser()
ORDER BY DESC) 
FROM TABLEA A

更新为:

WITH cte(SERVICE)
      AS
      (
           SELECT SERVICE FROM TABLEB B 
    WHERE B.NAME ='ABC' AND B.CUSTOMER='ABC'
 AND B.USERID=DBO.fnGetUser() 
      )
 SELECT ID,
    (SELECT  TOP 1 [TEXT] FROM cte B 
    WHERE B.SERVICE=A.SERVICE) 
    FROM TABLEA A

0 个答案:

没有答案