2013-04-12 46 views
1

我只是在SQL腳本首發,我有以下格式字段A包含字符串值:SQL函數用來替換空格,並| |空間和複製文本(SQL Server 2008 R2中)

X1|Y1 X2|Y2 X3|Y3 X4|Y4 X5|Y5 

我想創建一個函數用空格替換,然後替換|與一個空間。之後,在字符串的末尾放置字符串並將字符串「X1 Y1」中的第一個空格逗號前面的字符粘貼到文本的末尾。 因此,在該領域所產生的文本B將作如下安排:

X1 Y1,X2 Y2,X3 Y3,X4 Y4,X5 Y5,X1 Y1 

場A和B類型:NTEXT

注:我試圖用替換功能,但得到的錯誤信息:參數數據類型NTEXT是無效的功能的替換參數1

由於

+2

請註明您是通過添加適當的標籤針對RDBMS(甲骨文, SQL Server,MySQL等)。可能會有利用不被普遍支持的語言或產品功能的答案。此外,通過爲特定的RDBMS添加標籤,您的問題可能會得到更適合回答的人的關注。 – Taryn

回答

1

MySQL的:

Select Replace(colName,"|",",") 
+1

我正在使用SQL Server 2008 R2 – user1659529

+0

感謝jlareau的回答。您能否建議如何在字符串中的第一個空格之前複製字符到結尾,以便生成的文本將如下所示:X1,Y1 X2,Y2 X3,Y3 X4,Y4 X5,Y5 X1,Y1 – user1659529

+0

I don不知道SQL Server,但這在MySQL中有效:選擇替換(Concat(colName,「」,Left(colName,Locate(「,colName)\t)),」|「,」,「); – jlareau

2

在SQL Server 2008 R2:

SELECT REPLACE(@mystring,'|',',') + ' ' + REPLACE(LEFT(@mystring,CHARINDEX(' ',@mystring)-1),'|',',') 

與字段的名稱替換@mystring

1

不能使用更換與BLOB字段,你應該把它轉換第一個字符串字段 試試這個:

select replace(replace(cast(a as nvarchar(max)) + ' ' + left(cast(a as nvarchar(max)), 
     charindex(' ', cast(a as nvarchar(max))) - 1),' ',','),'|',' ') 
from aaa