我有一张这样的表:
DECLARE @T TABLE
(note VARCHAR (50))
INSERT @T
SELECT 'Amplifier'
UNION ALL SELECT ';'
UNION ALL SELECT 'Regulator'
如何用空格(';'
)替换分号(''
)。
预期产出:
Amplifier
'' -- here semicolon replace with blank
Regulator
答案 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 '