select ROW_NUMBER() over(PARTITION by number order by number) as rn
from (select t1.id as number,
t1.name as name from #a as T1
join #a T2 on T1.id=T2.id)
爲什麼這個查詢不工作爲什麼這個查詢不工作
它顯示錯誤.....
消息102,級別15,狀態1,行6 附近有語法錯誤)」。
select ROW_NUMBER() over(PARTITION by number order by number) as rn
from (select t1.id as number,
t1.name as name from #a as T1
join #a T2 on T1.id=T2.id)
爲什麼這個查詢不工作爲什麼這個查詢不工作
它顯示錯誤.....
消息102,級別15,狀態1,行6 附近有語法錯誤)」。
MSSQL要求派生表(from
子句中的子查詢)爲named。只需將您的查詢改爲:
select ROW_NUMBER() over(PARTITION by number order by number)as rn
from
(
select t1.id as number,t1.name as name from #a as T1 join #a T2 on T1.id=T2.id
) subquery1
應該解決您的問題。
正確的術語是「派生表」(這是子查詢的一種特殊形式)。更多信息[這裏](https://www.programmerinterview.com/index.php/database-sql/derived-table-vs-subquery/)。 –
@TT。我認爲「派生表」是表子查詢的結果?似乎很好,在名稱「subquery1」中給出這個東西。 – LukStorms
@LukStorms我不是指別名,而是他在第一句中使用的術語「subselect」。 –
末尾缺少別名。 '..T1.id = T2.id)a' –
「按數字順序進行分區」沒有意義。按列或按列排序,而不是兩者。 – Peter