2016-02-13 59 views
1

空白我有这样的一个表:替换;在SQL

DECLARE @T TABLE 
(note VARCHAR (50)) 

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

我怎么能代替分号(​​3210)与空白('')。

预期输出:

Amplifier 
''   -- here semicolon replace with blank 
Regulator 
+0

我认为这个担忧MS SQL Server? –

回答

2

如果你想从任何输出单元全部替换分号,你可以使用REPLACE这样的:

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

从给定的表中读取,使用CASE声明:

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

replace()将取代所有出现的字符。似乎并不像你想要的那样。该表达式仅替换整个字符串的精确匹配。

1

它看起来像你需要REPLACE所有分号:

DECLARE @T TABLE 
(note VARCHAR (50)) 

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