2017-01-12 7 views
0

私は照合を使用して検索し、答えを使用するのと同じ方法でそれを使用しています。しかし、私はエラーを取得しています。ここSQL Serverの照合構文エラー

Incorrect syntax near 'COLLATE'

は私のクエリです:

SELECT 
    P.FIRST_NAME_SRCH, 
    P.LAST_NAME_SRCH, 
    ' ' as Title, 
    CASE E.FULL_PART_TIME 
     WHEN 'F' THEN 'Full Time' 
     WHEN 'P' THEN 'Part Time' 
     WHEN 'O' THEN 'Occasional' 
     ELSE E.FULL_PART_TIME 
    END AS FULL_PART_TIME, 
    ' ' as Capacity, 
    REPLACE(E.HOME_PHONE,'/','-') as HOMEPHONE, 
    ' ' as MobilePh, 
    ' ' as Email, 
    CONVERT(char(10),E.BIRTHDATE,101) as 'BIRTHDATE', 
    CASE 
     WHEN E.HIRE_DT > E.REHIRE_DT THEN CONVERT(char(10),E.HIRE_DT,101) 
     WHEN E.REHIRE_DT > E.HIRE_DT THEN CONVERT(char(10),E.REHIRE_DT,101) 
     ELSE CONVERT(char(10),E.HIRE_DT,101) 
    END as 'HIRE_DT', 
    ' ' as CommPref, 
    RTRIM(K.LEVEL3) as 'JOBCODE', 
    E.EMPLID 
FROM 
    HRPROD..PS_EMPLOYEES E, HRPROD..PS_PERSONAL_DATA P, TKCSDB..CTRLEVEL3CFG K 
WHERE 
    E.COMPANY = 'WSQ' 
    AND E.EMPLID = P.EMPLID 
    AND K.VAL106 COLLATE DATABASE_DEFAULT = E.JOBCODE COLLATE DATABASE_DEFAULT 
ORDER BY 
    P.LAST_NAME_SRCH 

私は

AND 
    UPPER(K.VAL106) COLLATE DATABASE_DEFAULT = UPPER(E.JOBCODE) COLLATE DATABASE_DEFAULT 

と(戻りの照合順序の競合を解決できません(同じ構文エラーで)試してみました操作に等しい)

UPPER(K.VAL106) = UPPER(E.JOBCODE) 

構文で何が間違っていますか?

+0

おそらく、その比較は照合の競合の原因ではありません。 –

+0

その行が削除され、クエリが実行されます。申し訳ありません - 私はそれを述べたはずです... – dneimeier

+0

'UPPER(K.VAL106)= UPPER(E.JOBCODE)COLLATE DATABASE_DEFAULT'を使用するとどうなりますか? – Lamak

答えて

0

これはバージョンのものでなければなりません。 SQL SERVER 2012 Mgt Studioクエリツールを使用して実行すると、エラーなしで期待どおりの結果が返されます。