SQL在不使用replace的情况下替换结果中的逗号

时间:2014-12-01 16:18:23

标签: sql sql-server

我觉得这应该很简单,但是到目前为止还没有找到任何没有使用替代品的解决方案。我有以下运行的select语句,对于某些列,有逗号分隔值。我想用分号替换这些逗号,但我只想在select语句中这样做。我根本不希望它改变表中的值。这也不是一次性声明,或者我只是用分号替换所有逗号然后还原。

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语句。

3 个答案:

答案 0 :(得分:14)

我相信你可能会对REPLACE函数的作用感到困惑。您可以在SELECT语句中使用REPLACE而无需更改数据库中的数据:

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

答案 1 :(得分:0)

我相信您不希望在表格中替换物理值,但在选择

时可以replace

所以你可以

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

答案 2 :(得分:0)

大多数SQL服务器都实现了内联替换功能。其中大多数名为replace(),也可以在select语句中使用。 MySQL的例子:

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