我有類似的問題this one,但在這種情況下的解決方案是添加一個別名到子查詢。就我而言,我的每個子查詢都有一個別名,但我在每個子查詢的末尾都收到了消息Incorrect syntax near ')'
。SQL子查詢語法錯誤附近')' - 沒有丟失別名
我寫在2008 R2中的查詢,但針對SSRS 2000
我的整個查詢是相當長的,但這裏有一個縮短的僞代碼版本:
SELECT A
,B
,C
,D
,E
FROM
(
SELECT A as 'A', B as 'B', id
FROM table t
WHERE A = 'some value'
GROUP BY A, B
) AS sub1
LEFT JOIN
(
SELECT C as 'C', D as 'D', id
FROM
(
SELECT id
FROM nutherTable
WHERE id IN
(
SELECT DISTINCT id
FROM sub1
)
)
WHERE D like '%param%'
) AS sub2
ON sub2.id = sub1.id
LEFT JOIN
(
SELECT E as 'E', id
FROM finalTable
WHERE E IS NOT NULL
) AS sub3
ON sub3.id = sub2.id
你會發現,在第一個LEFT JOIN
,聯接使用子查詢,子查詢中的FROM
和WHERE
子句也使用子查詢。在我的實際查詢中,LEFT JOINs
都具有相同的結構。我不明白的一件事是嵌套子查詢不需要別名。如果我嘗試使用嵌套子句的別名,則會出現錯誤。所以它只在LEFT JOINs
的外部查詢中遇到問題。
我讀過其他帖子,子查詢只能返回單個字段的結果,但我看到很多例子,其中多個字段是從子查詢返回的,所以我認爲這不是問題。或者如果這將是一個問題,錯誤將會有所不同。我讀過的所有內容都將此問題歸結爲缺少子查詢的別名,並且我得到的結果有或沒有別名(根本沒有別名,也沒有使用AS
,也沒有使用AS
)。
你確定你是不是之前'缺少一個別名,其中d LIKE「%PARAM%」' ? –