CTE在“)”

时间:2017-06-12 13:56:27

标签: sql sql-server

我正在尝试使用具有以下结构的SQL查询:

WITH 
table1 
    AS (QUERY1)
, table2 
    AS (QUERY2)
, myCTE (COLUMNS OF THE CTE)
    AS (CTE_QUERY)  
    SELECT * FROM myCTE),
 ,anotherCTE...

我在“myCTE”附近收到“不正确的语法错误”。“。

4 个答案:

答案 0 :(得分:2)

错误很清楚。您有一个额外的func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize{ let cellW = (ScreenWidth - 10 - 10 - 30) / 4 return CGSize(width: cellW, height: cellW * 1.5 ) }

)

应该是

myCTE)

答案 1 :(得分:1)

正如你已经发现的,额外的)不应该在那里:

WITH 
table1 
    AS (QUERY1)
, table2 
    AS (QUERY2)
, myCTE (COLUMNS OF THE CTE)
    AS (CTE_QUERY)  
    SELECT * FROM myCTE

您报告的第二个错误是因为您在从上述CTE中选择后尝试执行另一个CTE。您不允许这样做,但是以SELECT语句结束CTE。

如果您以某种方式需要AnotherCTE,您可以通过在SELECT之前声明它来解决这个问题,如下所示:

WITH 
table1 
    AS (QUERY1)
, table2 
    AS (QUERY2)
, myCTE (COLUMNS OF THE CTE)
    AS (CTE_QUERY)  
 ,anotherCTE...
SELECT * FROM myCTE

然而,这意味着你并不需要另外的CTE开始。如果确实需要它,只需将SELECT语句向下移动到查询中的最终语句。

答案 2 :(得分:0)

您必须在;声明

之前添加WITH

答案 3 :(得分:0)

还有额外的")"在SELECT * FROM myCTE

 WITH 
    table1 
        AS (QUERY1)
    , table2 
        AS (QUERY2)
    , myCTE (COLUMNS OF THE CTE)
        AS (CTE_QUERY)  
        SELECT * FROM myCTE),
     ,anotherCTE...