在sql server

时间:2017-07-10 18:44:45

标签: sql-server-2014

我在SQL Server 2014专栏中有以下数据,名为EMP_CLASS_10_DESCR

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

我喜欢做的是通过查询以下列方式表示数据。

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

我仍然需要翻转名字并用a替换(逗号)。 (周期)

任何帮助将不胜感激。我做了一些搜索但是找不到任何搜索结果。我仍然是SQL Server的新手,只是想学习。

1 个答案:

答案 0 :(得分: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;