查询替换SQL中的逗号?

时间:2009-01-09 12:12:12

标签: sql

我有一个包含员工,地址,城市,州和邮政编码列表的表格。我已将地址,城市,州,邮政编码合并到一个列“地址”,用逗号分隔每个字段。

我的问题是,如果其中一个字段为null,则会插入一个额外的逗号。例如,如果city为空,则结果值将类似于address,,state,zipcode。我需要删除这个额外的逗号。这该怎么做?请帮忙。

4 个答案:

答案 0 :(得分:15)

您可以使用case when构造

   ... = case when city is null then '' else city + ',' end

如果值已经在数据库中,您可以这样替换它:

   UPDATE tableX SET address= replace(address, ',,', ',')

执行N次以确保甚至涵盖“所有字段都为空”的情况。

答案 1 :(得分:1)

或者您可以在php中手动执行此操作

<?php

$str = 'address,,state,zipcode';

$str = preg_replace('/,{2,}/i', ',', $str);
echo $str;

?>

我相信你也可以用你的语言做到这一点

答案 2 :(得分:1)

select replace(replace(replace(replace('LOKO, , , kkslksl  ',' ',''),',','<>'),'><',''),'<>',',') from dual

答案 3 :(得分:0)

在为字符串连接插入时使用replace:

REPLACE('address,,state,zipcode', ',,' , ',' )