我觉得这应该很简单,但是到目前为止还没有找到任何没有使用替代品的解决方案。我有以下运行的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语句。
答案 0 :(得分:14)
我相信你可能会对REPLACE函数的作用感到困惑。您可以在SELECT语句中使用REPLACE而无需更改数据库中的数据:
SELECT REPLACE(MyField, ',', ';') AS NewFieldName
FROM MyTable
答案 1 :(得分:0)
答案 2 :(得分:0)
大多数SQL服务器都实现了内联替换功能。其中大多数名为replace(),也可以在select语句中使用。 MySQL的例子:
SELECT field, REPLACE(field,',',';') FROM my_table;