在SQL Server

时间:2017-02-06 19:04:55

标签: sql sql-server

我正在尝试替换可能包含字母o而不是数字0的列中的任何电话号码。我有什么方法可以做到这一点吗?

例如:Phone列接受NVARCHAR,并且有多个数字输入,如下所示:

1-800-9o6o
(962)47l-9o8o
(472)1o4-7o91

多个我的意思是80 +

3 个答案:

答案 0 :(得分:2)

使用简单的替换语句。 https://msdn.microsoft.com/en-us/library/ms186862.aspx

Replace(YourColumn, 'o', '0')

答案 1 :(得分:0)

您可以使用替换功能:

$sql = "SELECT id, image_date, image_link, image_name, " .
    "image_category FROM image WHERE image_date < NOW() " .
    "AND image_category= :category ORDER BY id DESC LIMIT :limit";
$q = $db->prepare($sql);
$q->bindValue(':category', $category, PDO::PARAM_STR);
$q->bindValue(':limit', 1, PDO::PARAM_INT);
$q->execute();
$row = $q->fetchColumn();

如果您选择,请使用:

replace(phone_number, 'o', '0')

如果您需要更新表格:

select replace(phone_number, 'o', '0') from t;

答案 2 :(得分:0)

只需使用replace()

update t
    set phone = replace(phone, 'o', '0')
    where phone like '%o%';

根据您的示例,您可能还想更改小写&#34; l&#34;到1:

update t
    set phone = replace(replace(phone, 'o', '0'), 'l', '1')
    where phone like '%[ol]%';