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