2016-11-16 93 views
1

試圖在SQLAssitant(ⅴ的15.x的Teradata)來執行:Teradata支持多個子句嗎?

WITH TEMP1 (EMP_ID,E_NAME,E_SAL) AS (WITH TEMP (EMP_ID,E_NAME,E_SAL) AS (SELECT EMP_ID,E_NAME,E_SAL FROM EMP_TABLE_TEST) 
SELECT EMP_ID,E_NAME,E_SAL FROM TEMP) SELECT EMP_ID,E_NAME,E_SAL FROM TEMP1 

錯誤:SELECT失敗。 6926:定義,視圖,觸發器或存儲過程

WITH TEMP (EMP_ID,E_NAME,E_SAL) AS (SELECT EMP_ID,E_NAME,E_SAL FROM EMP_TABLE_TEST) , TEMP1 (EMP_ID,E_NAME,E_SAL) AS (
SELECT EMP_ID,E_NAME,E_SAL FROM TEMP) SELECT EMP_ID,E_NAME,E_SAL FROM TEMP1 

錯誤:SELECT失敗。 3807:對象'TEMP'不存在。

Teradata是否真的支持WITH WITH子句中的WITH WITH子句或WITH?

我聽說它在14.x更高版本中支持,但它不支持15.x.

+0

你有沒有嘗試谷歌?它是找到答案的好工具。 – FDavidov

+0

http://community.teradata.com/t5/Database/Defining-two-derived-tables-using-WITH-clause/td-p/46164 –

+0

我期待15.x將支持與查詢..但它是沒有.. –

回答

0

的語法是不同的(並且是相同的其他數據庫)
With t1 as (...),t2 as (...), t3 as (...) select ...


目前參照順序是顛倒 -
T2可以參考t3和T1可以參考t2和t3 。
TD16支持「正確」訂單。

+0

我可以嗎?將t1設置爲(從ABC選擇...),將t2設置爲(從...中選擇...),將t3設置爲(從...中選擇...)從t3中選擇...。我的要求是這樣的..? –

+0

正如我寫的,你應該改變順序:'以t3爲...,t2爲...,t1爲...選擇' –

+0

感謝Dudu Markovitz,你的回答對我有效..如果teradata將像Netezza,PostGre ....等一樣支持。 –