2014-12-01 53 views
3

我覺得這應該足夠簡單,但還沒有找到任何解決方案,目前還沒有使用替換。我有我正在運行的以下select語句,並且對於某些列,用逗號分隔這些值。我想用分號替換這些逗號,但我只想在select語句中執行它。我不希望它改變表中的值。這也不是一句話,或者我只是用分號替換所有的逗號,然後恢復。SQL在不使用替換的情況下替換結果中的逗號

SELECT a.Category_Id, a.Category_Name, ISNULL(b.Category_Alias, '') as Category_Alias, 
ISNULL(b.SUPPORT_NAMES, '') as SUPPORT_NAMES 
FROM Categories a 
    INNER JOIN CategoryInfo b on b.Category_Id=a.Category_Id 

對於Category_Alias列,記錄實際上是存儲像CS, Customer Support,我想,要爲CS; Customer Support露面只爲select語句。

+0

某些示例會有所幫助。 – jcjr 2014-12-01 16:20:31

+5

出於興趣,爲什麼不使用REPLACE,因爲它完全符合你的要求? – Alan 2014-12-01 16:20:38

回答

8

我相信你可能會感到困惑,以什麼REPLACE函數在做什麼。您可以在SELECT語句中使用REPLACE而不更改數據庫中的數據:

SELECT REPLACE(MyField, ',', ';') AS NewFieldName 
FROM MyTable 
+0

不要忘記'As'關鍵字!如果沒有,可能會讓人有些困惑。 – gvee 2014-12-01 16:25:56

+0

好點,編輯使SQL更清晰。 – Alan 2014-12-01 16:27:28

0

我相信你不想在表更換物理值,但確定replace上選擇

所以,你可以

Select REPLACE(ColumnName,',',';') 
From TableName 
0

大多數SQL服務器實施內聯替換功能。它們中的大多數都被命名爲replace(),並且也可以在select語句中使用。從MySQL 例子:

SELECT field, REPLACE(field,',',';') FROM my_table; 
+1

在'Replace()'上檢查語法 - 只有2個參數? – gvee 2014-12-01 16:26:53