2017-05-12 47 views
0

我在TBL一列中,我有价值观像如何替换空间或“”

X Y  Z 
1 4 123/1232221 
2 3 234/3454455 
3 2 UNKNOWN 123234 

现在我想的是,当我触发查询“未知”将取代列的字符串与空间

象下面这样:

X Y  Z 
1 4 123/1232221 
2 3 234/3454455 
3 2 123234 

任何帮助将不胜感激。

在此先感谢!

+2

'replace(z,'UNKNOWN','')'? –

+0

我把你的代码等待输出,因为它是非常大的数据库,它将需要2个小时才能完成运行 – amitesh

+0

感谢@Ganesh_Devlekar你的代码为我工作 – amitesh

回答

2

要更正表:

update tbl 
set z = replace(z,'UNKNOWN','') 
where z like '%UNKNOWN%'; 

要与未知replace d

select x, y, replace(z,'UNKNOWN','') as z 
from tbl; 
+0

它现在不会显示任何记录.. – amitesh

+0

呃,那么好或坏消息?如果你运行了第一条更新语句,那么是的,在表中的z字段中不应该有任何“UNKNOWN”。 – LukStorms

+0

感谢它的工作....感谢您的帮助家伙... – amitesh

0

使用替换功能查询表, 更换你的情况的字符串(string_expression,string_pattern,string_replacement) 表达式z的值。如果在某一行 列中没有字符串'UNKNOWN'的值,那么行中该列的值将会保持不变( )。 你可以找到更多的https://docs.microsoft.com/en-us/sql/t-sql/functions/replace-transact-sql

select x,y,replace(z,'UNKNOWN',' ') as z from you_table 

,或者如果您想更新

update your_table set z=replace(z,'UNKNOWN',' ') 
+0

**从审查队列**:我可以请求你请添加更多的上下文围绕你的答案。仅有代码的答案很难理解。如果您可以在帖子中添加更多信息,它可以帮助提问者和未来的读者。 – RBT

1

这是否足够? UPDATE table SET column_name = REPLACE(column_name, 'UNKNOWN', ' ');