SQL Update,邮政编码之间的空格

时间:2014-05-22 10:27:07

标签: sql sql-server string sql-update

我需要在邮政编码字段上进行更新查询以在其间创建空格。例如,有7个字符,例如HP114GT我希望HP11 4GT或者有6个例如HP14GT我想要HP1 4GT。任何帮助都会很棒!!

4 个答案:

答案 0 :(得分:1)

UPDATE Table
SET Column = CASE WHEN LEN(Column) = 6 THEN STUFF(Column, 4, 0, ' ')
                  WHEN LEN(Column) = 7 THEN STUFF(Column, 5, 0, ' ')
             END
WHERE CHARINDEX(' ', Column, 1) = 0
      AND LEN(Column) BETWEEN 6 AND 7

答案 1 :(得分:0)

请尝试以下查询SQL Server:

UPDATE tbl
SET Col=LEFT(Col, len(Col)-3)+' '+RIGHT(col, 3)
WHERE LEN(Col)>3 AND
CHARINDEX(' ',  Col, 1)=0

答案 2 :(得分:0)

在Oracle中我会做类似的事情:

Update mytable 
    set pin_code = DECODE 
    (LENGTH(pin_code),7,SUBSTR(pin_code,1,4)||' '||SUBSTR(pin_code,5,7),6,SUBSTR(pin_code,1,3)||' '||SUBSTR(pin_code,4,6));

答案 3 :(得分:0)

在MySQL中这是有效的。也可能在其他DBMS中,因为函数通常或多或少相同。

update your_table set col = replace(col, right(col, 3), concat(' ', right(col, 3)))
where char_length(col) > 3;