替换;在SQL中使用空白

时间:2016-02-13 05:56:22

标签: sql

我有一张这样的表:

DECLARE @T TABLE
(note VARCHAR (50))

INSERT @T
SELECT 'Amplifier'
UNION ALL SELECT ';'
UNION ALL SELECT 'Regulator'

如何用空格(';')替换分号('')。

预期产出:

Amplifier
''         --  here semicolon replace with blank
Regulator

4 个答案:

答案 0 :(得分:2)

从给定的表中获取,使用CASE语句:

SELECT CASE WHEN note = ';' THEN '' ELSE note END AS note FROM @T;

replace()会替换所有出现的字符。看起来你似乎并不想要那样。此表达式仅替换整个字符串的完全匹配。

答案 1 :(得分:2)

如果要从任何输出的单元格中替换所有分号,可以使用REPLACE,如下所示:

SELECT REPLACE(note,';','') AS [note] FROM @T

答案 2 :(得分:1)

看起来您需要REPLACE所有分号:

DECLARE @T TABLE
(note VARCHAR (50))

INSERT INTO @T
SELECT REPLACE(SourceColumn, ';', '')
FROM SourceTable

答案 3 :(得分:0)

SQL Server 2017引入了TRANSLATE函数,您可以在其中指定要替换的字符列表

SELECT TRANSLATE('MAX(0,MIN(h-36,8))', '(,-)', '    ') -->'MAX 0 MIN h 36 8 '