2016-05-12 88 views
-1

我將Oracle PLSQL代碼轉換爲TSQL。當我測試查詢時,我在關鍵字'ORDER'錯誤附近得到錯誤的語法。我在FROM語句中使用多個聯合。如果我刪除了ORDER BY語句,那麼檢查會在')'附近返回錯誤的語法錯誤。我已經在下面包含了整個轉換後的TSQL,希望第二雙眼睛會看到錯誤。我確信有更好的方法可以做到這一點,但我通過從Oracle 11g到SQL 2012的轉換形式中途繼承了這一點。我們將不勝感激任何幫助解決錯誤的方法。下面是完整的語句:將PLSQL轉換爲TSQL後語法錯誤不正確

SELECT casenumber,partynumber,ptyname,connection1,connection2,connection3,connection4,connection5,CASE WHEN LTrim(appointtype) IN ('OSA','NOA','PRO') THEN '' ELSE CAST(barnumber AS char) END AS barnumber, 
appointtype,attyname,address1,address2,city,state,zipcode,zipfour,phone,emailaddress,oralargument,timely,prisonid,appear, vacstart, vacend, vacstart1, vacend1, vacstart2, vacend2, vacstart3, vacend3, 
vacstart4, vacend4, vacstart5, vacend5, vacstart6, vacend6, vacstart7, vacend7, vacstart8, vacend8, vacstart9, vacend9, vacstart10,vacend10,vacstart11,vacend11,vacstart12,vacend12,vacstart13,vacend13, 
vacstart14,vacend14,altaddr1,altaddr2,altcity,altstate,altzip,altzipfour, descr,eserv_address1,eserv_address2 
from (SELECT p.casenumber, p.partynumber,p.ptyname,connection1,connection2,connection3,connection4,connection5,1 AS Attorney_order,barnumber1 AS barnumber ,appointtype1 AS appointtype, 
     CASE WHEN LTrim(RTrim(appointtype1))='OSA' THEN osaname ELSE attyname END AS attyname, 
    CASE WHEN LTrim(Rtrim(appointtype1)) in ('PRO','NOA') THEN d.address1 WHEN appointtype1='OSA' THEN osa.address1 ELSE addr1 END AS Address1, 
    CASE WHEN LTrim(Rtrim(appointtype1)) in ('PRO','NOA') THEN d.address2 WHEN LTrim(Rtrim(appointtype1))='OSA' THEN osa.address2 ELSE addr2 END AS Address2, 
    CASE WHEN LTrim(Rtrim(appointtype1)) in ('PRO','NOA') THEN z2.city WHEN appointtype1='OSA' THEN z3.city ELSE z1.city END AS CITY, 
    CASE WHEN LTrim(Rtrim(appointtype1)) in ('PRO','NOA') THEN z2.state WHEN appointtype1='OSA' THEN z3.state ELSE z1.state END AS STATE, 
    CASE WHEN LTrim(Rtrim(appointtype1)) in ('PRO','NOA') THEN d.zipcode WHEN appointtype1='OSA' THEN osa.zipcode ELSE a.zipcode END AS ZIPCODE, 
    CASE WHEN LTrim(Rtrim(appointtype1)) in ('PRO','NOA') THEN d.zipfour WHEN appointtype1='OSA' THEN osa.zipfour ELSE a.zipfour END AS ZIPFOUR, 
    CASE WHEN LTrim(Rtrim(appointtype1)) in ('PRO','NOA') THEN CONCAT(IIF(d.phonearea is NOT NULL, CONCAT(d.phonearea,'/'),''),'',SUBSTRING(CAST(d.phonenbr as VARCHAR(100)),1,3),'-',RIGHT(CAST(d.phonenbr as VARCHAR(100)),4)) 
    WHEN appointtype1='OSA' THEN CONCAT(IIF(osa.phonearea is NOT NULL, CONCAT(osa.phonearea,'/'),''),'',SUBSTRING(CAST(osa.phonenbr as VARCHAR(100)),1,3),'-',RIGHT(CAST(osa.phonenbr as VARCHAR(100)),4)) 
    --CASE WHEN LTrim(Rtrim(appointtype1)) in ('PRO','NOA') THEN ISNULL(d.phonearea,CAST(d.phonearea AS char)+'/','')+' '+SubString(CAST(d.phonenbr AS char),1,3)+'-'+SubString(d.phonenbr,-4) 
    --WHEN appointtype1='OSA' THEN ISNULL(osa.phonearea,CAST(osa.phonearea AS char)+'/','')+' '+SubString(CAST(osa.phonenbr AS char),1,3)+'-'+SubString(osa.phonenbr,-4) 
    --ELSE ISNULL(a.areacode,CAST(a.areacode AS char)+'/','')+' '+SubString(CAST(a.phonenbr AS char),1,3)+'-'+SubString(a.phonenbr,-4) END AS phone, 
    ELSE CONCAT(IIF(a.phonearea is NOT NULL, CONCAT(a.phonearea,'/'),''),'',SUBSTRING(CAST(a.phonenbr as VARCHAR(100)),1,3),'-',RIGHT(CAST(a.phonenbr as VARCHAR(100)),4)) END AS phone, 
    CASE WHEN LTrim(Rtrim(appointtype1)) in ('PRO','NOA') THEN d.emailaddress WHEN appointtype1='OSA' THEN osa.emailaddress ELSE a.emailaddress END AS EMAILADDRESS, 
    CASE WHEN LTrim(Rtrim(appointtype1)) in ('PRO','NOA') THEN d.eserv_address1 WHEN appointtype1='OSA' THEN osa.eserv_address1 ELSE a.eserv_address1 END AS eserv_address1, 
    CASE WHEN LTrim(Rtrim(appointtype1)) in ('PRO','NOA') THEN d.eserv_address2 WHEN appointtype1='OSA' THEN osa.eserv_address2 ELSE a.eserv_address2 END AS eserv_address2, 
    oralargument,timely,prisonid,appear1 AS appear, vacstart, vacend, vacstart1, vacend1 ,vacstart2 , vacend2 , vacstart3, vacend3,vacstart4,vacend4 ,vacstart5 ,vacend5,vacstart6 ,vacend6, 
    vacstart7 ,vacend7, vacstart8 ,vacend8,vacstart9 ,vacend9, vacstart10,vacend10,vacstart11,vacend11,vacstart12,vacend12,vacstart13,vacend13,vacstart14,vacend14,altaddr1,altaddr2, 
    z5.city AS altcity, z5.state AS altstate,altzip,altzipfour, descr 
    from parties p left JOIN attorneys a ON p.barnumber1=a.attynbr 
    left JOIN address d ON p.casenumber=d.casenumber AND p.partynumber=d.partynumber AND p.courtid=d.courtid AND p.caseyear=d.caseyear AND ISNULL(p.barnumber1,0)=0 
    left join outstateaddr osa ON p.casenumber=osa.casenumber AND p.courtid=osa.courtid AND p.caseyear=osa.caseyear AND p.partynumber=osa.partynumber and p.appointtype1='OSA' AND partyattyseq=1 
    left JOIN zipcodes z1 ON a.zipcode=z1.zipcode left JOIN zipcodes z2 ON d.zipcode=z2.zipcode left JOIN zipcodes z3 ON osa.zipcode=z3.zipcode left JOIN zipcodes z5 ON a.altzip=z5.zipcode 
    left join events on a.status = events.tablecode and events.tableid = 0509 WHERE p.casenumber=332755 AND p.courtid=84 
UNION 
SELECT p.casenumber, p.partynumber,p.ptyname, connection1,connection2,connection3,connection4,connection5,2 AS Attorney_order,barnumber2 AS barnumber ,appointtype2 AS appointtype, 
    CASE WHEN LTrim(RTrim(appointtype2))='OSA' THEN osaname ELSE attyname END AS attyname, 
CASE WHEN LTrim(Rtrim(appointtype2)) in ('PRO','NOA') THEN d.address1 WHEN appointtype2='OSA' THEN osa.address1 ELSE addr1 END AS Address1, 
CASE WHEN LTrim(Rtrim(appointtype2)) in ('PRO','NOA') THEN d.address2 WHEN appointtype2='OSA' THEN osa.address2 ELSE addr2 END AS Address2, 
CASE WHEN LTrim(Rtrim(appointtype2)) in ('PRO','NOA') THEN z2.city WHEN appointtype2='OSA' THEN z3.city ELSE z1.city END AS CITY, 
CASE WHEN LTrim(Rtrim(appointtype2)) in ('PRO','NOA') THEN z2.state WHEN appointtype2='OSA' THEN z3.state ELSE z1.state END AS STATE, 
CASE WHEN LTrim(Rtrim(appointtype2)) in ('PRO','NOA') THEN d.zipcode WHEN appointtype2='OSA' THEN osa.zipcode ELSE a.zipcode END AS ZIPCODE, 
CASE WHEN LTrim(Rtrim(appointtype2)) in ('PRO','NOA') THEN d.zipfour WHEN appointtype2='OSA' THEN osa.zipfour ELSE a.zipfour END AS ZIPFOUR, 
CASE WHEN LTrim(Rtrim(appointtype2)) in ('PRO','NOA') THEN CONCAT(IIF(d.phonearea is NOT NULL, CONCAT(d.phonearea,'/'),''),'',SUBSTRING(CAST(d.phonenbr as VARCHAR(100)),1,3),'-',RIGHT(CAST(d.phonenbr as VARCHAR(100)),4)) 
    WHEN appointtype2='OSA' THEN CONCAT(IIF(osa.phonearea is NOT NULL, CONCAT(osa.phonearea,'/'),''),'',SUBSTRING(CAST(osa.phonenbr as VARCHAR(100)),1,3),'-',RIGHT(CAST(osa.phonenbr as VARCHAR(100)),4)) 
    ELSE CONCAT(IIF(a.phonearea is NOT NULL, CONCAT(a.phonearea,'/'),''),'',SUBSTRING(CAST(a.phonenbr as VARCHAR(100)),1,3),'-',RIGHT(CAST(a.phonenbr as VARCHAR(100)),4)) END AS phone, 
--CASE WHEN LTrim(Rtrim(appointtype2)) in ('PRO','NOA') THEN ISNULL(d.phonearea,CAST(d.phonearea AS char)+'/','')+' '+SubString(CAST(d.phonenbr AS char),1,3)+'-'+SubString(d.phonenbr,-4) 
-- WHEN appointtype2='OSA' THEN ISNULL(osa.phonearea,CAST(osa.phonearea AS char)+'/','')+' '+SubString(CAST(osa.phonenbr AS char),1,3)+'-'+SubString(osa.phonenbr,-4) 
-- ELSE ISNULL(a.areacode,CAST(a.areacode AS char)+'/','')+' '+SubString(CAST(a.phonenbr AS char),1,3)+'-'+SubString(a.phonenbr,-4) END AS phone, 
CASE WHEN LTrim(Rtrim(appointtype2)) in ('PRO','NOA') THEN d.emailaddress WHEN appointtype2='OSA' THEN osa.emailaddress ELSE a.emailaddress END AS EMAILADDRESS, 
CASE WHEN LTrim(Rtrim(appointtype2)) in ('PRO','NOA') THEN d.eserv_address1 WHEN appointtype2='OSA' THEN osa.eserv_address1 ELSE a.eserv_address1 END AS eserv_address1, 
CASE WHEN LTrim(Rtrim(appointtype2)) in ('PRO','NOA') THEN d.eserv_address2 WHEN appointtype2='OSA' THEN osa.eserv_address2 ELSE a.eserv_address2 END AS eserv_address2, 
oralargument,timely,prisonid ,appear2 AS appear, vacstart, vacend, vacstart1, vacend1 ,vacstart2 , vacend2 , vacstart3, vacend3,vacstart4,vacend4 ,vacstart5 ,vacend5,vacstart6 ,vacend6, 
vacstart7 ,vacend7, vacstart8 ,vacend8,vacstart9 ,vacend9, vacstart10,vacend10, vacstart11,vacend11,vacstart12,vacend12,vacstart13,vacend13,vacstart14,vacend14,altaddr1,altaddr2, 
z5.city AS altcity, z5.state AS altstate,altzip,altzipfour, descr 
from parties p left JOIN attorneys a ON p.barnumber2=a.attynbr 
    left JOIN address d ON p.casenumber=d.casenumber AND p.partynumber=d.partynumber AND p.courtid=d.courtid AND p.caseyear=d.caseyear AND ISNULL(p.barnumber2,0)=0 
    left join outstateaddr osa ON p.casenumber=osa.casenumber AND p.courtid=osa.courtid AND p.caseyear=osa.caseyear AND p.partynumber=osa.partynumber AND p.appointtype2='OSA' AND partyattyseq=2 
    left JOIN zipcodes z1 ON a.zipcode=z1.zipcode left JOIN zipcodes z2 ON d.zipcode=z2.zipcode left JOIN zipcodes z3 ON osa.zipcode=z3.zipcode 
    left JOIN zipcodes z5 ON a.altzip=z5.zipcode left join events on a.status = events.tablecode and events.tableid = 0509 WHERE p.casenumber=332755 AND appointtype2 IS NOT null AND p.courtid=84 
UNION 
SELECT p.casenumber, p.partynumber,p.ptyname, connection1,connection2,connection3,connection4,connection5,3 AS Attorney_order,barnumber3 AS barnumber ,appointtype3 AS appointtype, 
    CASE WHEN LTrim(RTrim(appointtype3))='OSA' THEN osaname ELSE attyname END AS attyname, 
    CASE WHEN LTrim(Rtrim(appointtype3)) in ('PRO','NOA') THEN d.address1 WHEN appointtype3='OSA' THEN osa.address1 ELSE addr1 END AS Address1, 
    CASE WHEN LTrim(Rtrim(appointtype3)) in ('PRO','NOA') THEN d.address2 WHEN appointtype3='OSA' THEN osa.address2 ELSE addr2 END AS Address2, 
    CASE WHEN LTrim(Rtrim(appointtype3)) in ('PRO','NOA') THEN z2.city WHEN appointtype3='OSA' THEN z3.city ELSE z1.city END AS CITY, 
    CASE WHEN LTrim(Rtrim(appointtype3)) in ('PRO','NOA') THEN z2.state WHEN appointtype3='OSA' THEN z3.state ELSE z1.state END AS STATE, 
    CASE WHEN LTrim(Rtrim(appointtype3)) in ('PRO','NOA') THEN d.zipcode WHEN appointtype3='OSA' THEN osa.zipcode ELSE a.zipcode END AS ZIPCODE, 
    CASE WHEN LTrim(Rtrim(appointtype3)) in ('PRO','NOA') THEN d.zipfour WHEN appointtype3='OSA' THEN osa.zipfour ELSE a.zipfour END AS ZIPFOUR, 
    CASE WHEN LTrim(Rtrim(appointtype3)) in ('PRO','NOA') THEN CONCAT(IIF(d.phonearea is NOT NULL, CONCAT(d.phonearea,'/'),''),'',SUBSTRING(CAST(d.phonenbr as VARCHAR(100)),1,3),'-',RIGHT(CAST(d.phonenbr as VARCHAR(100)),4)) 
    WHEN appointtype3='OSA' THEN CONCAT(IIF(osa.phonearea is NOT NULL, CONCAT(osa.phonearea,'/'),''),'',SUBSTRING(CAST(osa.phonenbr as VARCHAR(100)),1,3),'-',RIGHT(CAST(osa.phonenbr as VARCHAR(100)),4)) 
    ELSE CONCAT(IIF(a.phonearea is NOT NULL, CONCAT(a.phonearea,'/'),''),'',SUBSTRING(CAST(a.phonenbr as VARCHAR(100)),1,3),'-',RIGHT(CAST(a.phonenbr as VARCHAR(100)),4)) END AS phone, 
--CASE WHEN LTrim(Rtrim(appointtype3)) in ('PRO','NOA') THEN ISNULL(d.phonearea,CAST(d.phonearea AS char)+'/','')+' '+SubString(CAST(d.phonenbr AS char),1,3)+'-'+SubString(d.phonenbr,-4) 
--WHEN appointtype3='OSA' THEN ISNULL(osa.phonearea,CAST(osa.phonearea AS char)+'/','')+' '+SubString(CAST(osa.phonenbr AS char),1,3)+'-'+SubString(osa.phonenbr,-4) 
-- ELSE ISNULL(a.areacode,CAST(a.areacode AS char)+'/','')+' '+SubString(CAST(a.phonenbr AS char),1,3)||'-'||SubString(a.phonenbr,-4) END AS phone, 
    CASE WHEN LTrim(Rtrim(appointtype3)) in ('PRO','NOA') THEN d.emailaddress WHEN appointtype3='OSA' THEN osa.emailaddress ELSE a.emailaddress END AS EMAILADDRESS, 
    CASE WHEN LTrim(Rtrim(appointtype3)) in ('PRO','NOA') THEN d.eserv_address1 WHEN appointtype3='OSA' THEN osa.eserv_address1 ELSE a.eserv_address1 END AS eserv_address1, 
    CASE WHEN LTrim(Rtrim(appointtype3)) in ('PRO','NOA') THEN d.eserv_address2 WHEN appointtype3='OSA' THEN osa.eserv_address2 ELSE a.eserv_address2 END AS eserv_address2, 
    oralargument,timely,prisonid,appear3 AS appear, vacstart, vacend, vacstart1, vacend1 ,vacstart2 , vacend2 , vacstart3, vacend3,vacstart4,vacend4 ,vacstart5 ,vacend5,vacstart6 ,vacend6, 
    vacstart7 ,vacend7, vacstart8 ,vacend8,vacstart9 ,vacend9, vacstart10 ,vacend10, vacstart11 ,vacend11, vacstart12 ,vacend12, vacstart13,vacend13, vacstart14, vacend14,altaddr1,altaddr2, 
    z5.city AS altcity, z5.state AS altstate,altzip,altzipfour, descr 
    from parties p left JOIN attorneys a ON p.barnumber3=a.attynbr 
    left JOIN address d ON p.casenumber=d.casenumber AND p.partynumber=d.partynumber AND p.courtid=d.courtid AND p.caseyear=d.caseyear AND ISNULL(p.barnumber3,0)=0 
left join outstateaddr osa ON p.casenumber=osa.casenumber AND p.courtid=osa.courtid AND p.caseyear=osa.caseyear AND p.partynumber=osa.partynumber AND p.appointtype3='OSA' AND partyattyseq=3 
left JOIN zipcodes z1 ON a.zipcode=z1.zipcode left JOIN zipcodes z2 ON d.zipcode=z2.zipcode left JOIN zipcodes z3 ON osa.zipcode=z3.zipcode 
left JOIN zipcodes z5 ON a.altzip=z5.zipcode left join events on a.status = events.tablecode and events.tableid = 0509 
WHERE p.casenumber=332755 AND appointtype3 IS NOT null AND p.courtid=84 
UNION 
SELECT p.casenumber, p.partynumber,p.ptyname, connection1,connection2,connection3,connection4,connection5,4 AS Attorney_order,barnumber2 AS barnumber ,appointtype4 AS appointtype, 
    CASE WHEN LTrim(RTrim(appointtype4))='OSA' THEN osaname ELSE attyname END AS attyname, 
    CASE WHEN LTrim(Rtrim(appointtype4)) in ('PRO','NOA') THEN d.address1 WHEN appointtype4='OSA' THEN osa.address1 ELSE addr1 END AS Address1, 
    CASE WHEN LTrim(Rtrim(appointtype4)) in ('PRO','NOA') THEN d.address2 WHEN appointtype4='OSA' THEN osa.address2 ELSE addr2 END AS Address2, 
    CASE WHEN LTrim(Rtrim(appointtype4)) in ('PRO','NOA') THEN z2.city WHEN appointtype4='OSA' THEN z3.city ELSE z1.city END AS CITY, 
    CASE WHEN LTrim(Rtrim(appointtype4)) in ('PRO','NOA') THEN z2.state WHEN appointtype4='OSA' THEN z3.state ELSE z1.state END AS STATE, CASE WHEN LTrim(Rtrim(appointtype4)) in ('PRO','NOA') 
    THEN d.zipcode WHEN appointtype4='OSA' THEN osa.zipcode ELSE a.zipcode END AS ZIPCODE, 
    CASE WHEN LTrim(Rtrim(appointtype4)) in ('PRO','NOA') THEN d.zipfour WHEN appointtype4='OSA' THEN osa.zipfour ELSE a.zipfour END AS ZIPFOUR, 
    CASE WHEN LTrim(Rtrim(appointtype4)) in ('PRO','NOA') THEN CONCAT(IIF(d.phonearea is NOT NULL, CONCAT(d.phonearea,'/'),''),'',SUBSTRING(CAST(d.phonenbr as VARCHAR(100)),1,3),'-',RIGHT(CAST(d.phonenbr as VARCHAR(100)),4)) 
    WHEN appointtype4='OSA' THEN CONCAT(IIF(osa.phonearea is NOT NULL, CONCAT(osa.phonearea,'/'),''),'',SUBSTRING(CAST(osa.phonenbr as VARCHAR(100)),1,3),'-',RIGHT(CAST(osa.phonenbr as VARCHAR(100)),4)) 
    ELSE CONCAT(IIF(a.phonearea is NOT NULL, CONCAT(a.phonearea,'/'),''),'',SUBSTRING(CAST(a.phonenbr as VARCHAR(100)),1,3),'-',RIGHT(CAST(a.phonenbr as VARCHAR(100)),4)) END AS phone, 
    --CASE WHEN LTrim(Rtrim(appointtype4)) in ('PRO','NOA') THEN ISNULL(d.phonearea,CAST(d.phonearea AS char)+'/','')+' '+SubString(CAST(d.phonenbr AS char),1,3)+'-'+SubString(d.phonenbr,-4) 
    --WHEN LTrim(Rtrim(appointtype4))='OSA' THEN ISNULL(osa.phonearea,CAST(osa.phonearea AS char)+'/','')+' '+SubString(CAST(osa.phonenbr AS char),1,3)+'-'+SubString(osa.phonenbr,-4) 
    --ELSE ISNULL(a.areacode,CAST(a.areacode AS char)+'/','')+' '+SubString(CAST(a.phonenbr AS char),1,3)+'-'+SubString(a.phonenbr,-4) END AS phone, 
    CASE WHEN LTrim(Rtrim(appointtype4)) in ('PRO','NOA') THEN d.emailaddress WHEN appointtype4='OSA' THEN osa.emailaddress ELSE a.emailaddress END AS EMAILADDRESS, 
    CASE WHEN LTrim(Rtrim(appointtype4)) in ('PRO','NOA') THEN d.eserv_address1 WHEN appointtype4='OSA' THEN osa.eserv_address1 ELSE a.eserv_address1 END AS eserv_address1, 
    CASE WHEN LTrim(Rtrim(appointtype4)) in ('PRO','NOA') THEN d.eserv_address2 WHEN appointtype4='OSA' THEN osa.eserv_address2 ELSE a.eserv_address2 END AS eserv_address2, oralargument,timely, 
    prisonid,appear4 AS appear, vacstart, vacend, vacstart1, vacend1 ,vacstart2 , vacend2 , vacstart3, vacend3,vacstart4,vacend4 ,vacstart5 ,vacend5,vacstart6 ,vacend6, vacstart7 ,vacend7, vacstart8 , 
    vacend8,vacstart9 ,vacend9, vacstart10,vacend10,vacstart11,vacend11,vacstart12,vacend12,vacstart13,vacend13,vacstart14,vacend14, altaddr1,altaddr2,z5.city AS altcity, 
    z5.state AS altstate,altzip,altzipfour, descr 
from parties p left JOIN attorneys a ON p.barnumber4=a.attynbr 
left JOIN address d ON p.casenumber=d.casenumber AND p.partynumber=d.partynumber AND p.courtid=d.courtid AND p.caseyear=d.caseyear AND ISNULL(p.barnumber4,0)=0 
left join outstateaddr osa ON p.casenumber=osa.casenumber AND p.courtid=osa.courtid AND p.caseyear=osa.caseyear AND p.partynumber=osa.partynumber AND p.appointtype4='OSA' AND partyattyseq=4 
left JOIN zipcodes z1 ON a.zipcode=z1.zipcode left JOIN zipcodes z2 ON d.zipcode=z2.zipcode left JOIN zipcodes z3 ON osa.zipcode=z3.zipcode left JOIN zipcodes z5 ON a.altzip=z5.zipcode 
left join events on a.status = events.tablecode and events.tableid = 0509 WHERE p.casenumber=332755 AND p.courtid=84 AND appointtype4 IS NOT NULL) 
**ORDER BY casenumber,partynumber,attorney_order** 
+1

這看起來嚇人:=) –

+0

有人與代表進行編輯,請格式化。 – WPrecht

+1

不值得閱讀。 \t請閱讀[**如何提問**](http://stackoverflow.com/help/how-to-ask) \t \t這裏是[** START **]( http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)瞭解如何提高您的問題質量並獲得更好的答案。 –

回答

2

當您使用SELECT * FROM (SELECT ...) ORDER BY ...必須命名派生表。

ORDER BY之前,您必須在關閉之後設置AS tbl

所以完整的查詢是這樣的

SELECT col1, col2, ... 
FROM 
(SELECT Something) AS tbl --any alias 
ORDER BY col1