2017-07-10 4 views
0

をfirstname.lastnameするFIRSTNAME私はEMP_CLASS_10_DESCRスイッチング姓、SQLサーバーに

OUELLETTE,MAXIME :845800 
ANDERSON,ADRIEN :021252 
MITRI,NATHALIA :687173 

と呼ばれるSQL Serverの2014欄の下のデータを持っている私は何をしたいとすると、データが途中で次のように表さ持っていますクエリの私はこれまで何をやったか

MAXIME.OUELLETTE 
ADRIEN.ANDERSON 
NATHALIA.MITRI 

CASE WHEN CHARINDEX(':', EMP_CLASS_10_DESCR) 
        = 0 THEN EMP_CLASS_10_DESCR ELSE LEFT(EMP_CLASS_10_DESCR, CHARINDEX(':', EMP_CLASS_10_DESCR) - 1) END AS FULL_NAME, 

である。しかしやったことすべては私に私はまだ周りに名を反転し、交換する必要があり、次の

OUELLETTE,MAXIME 
ANDERSON,ADRIEN 
MITRI,NATHALIA 

を与えました、 (カンマ)。 (期間)

何か助けていただければ幸いです。私はいくつかの検索を行ったが、近いものは見つけられなかった。私はまだSQL Serverの新機能であり、学習しようとしています。

答えて

1

あなたはPARSENAMEを使用することができます。

WITH CTE AS 
(
    SELECT CASE 
       WHEN CHARINDEX(':',YourColumn) > 0 
       THEN RTRIM(LTRIM(LEFT(YourColumn,CHARINDEX(':',YourColumn)-1))) 
       ELSE YourColumn 
      END NewColumn 
    FROM dbo.YourTable 
) 
SELECT CONCAT(PARSENAME(REPLACE(NewColumn,',','.'),1),'.',PARSENAME(REPLACE(NewColumn,',','.'),2)) 
FROM CTE; 
+0

おかげでお返事。私はあなたが提案したものを試しました。出力は次のようになりました。 'MAXIME:845800.OUELLETTE' ' ADRIEN:021252.ANDERSON' 'NATHALIA:687173.MITRI'私は今、123456(コロンと数値中間で) –

+0

@rasmac私は ':845800'が別の列であると仮定していました。私は今すぐ私の返答を更新しました – Lamak

+0

もう一度お返事ありがとうございます。私は現在、更新された回答をしようとすると、次のエラーに直面しています。 'Msg 537、Level 16、State 2、Line 45 LEFTまたはSUBSTRING関数に長さパラメータが渡されました。 ' –

関連する問題