0

私は照合を使用して検索し、回答が使用するのと同じ方法で使用しています。ただし、エラーが発生します

「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)

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

4

1 に答える 1

0

これはバージョンの問題に違いありません。SQL SERVER 2012 Mgt Studio クエリ ツールを使用して実行すると、予期した結果がエラーなしで返されます。

于 2017-01-12T13:55:19.407 に答える