SQL - вставка символа в строку на основе условий - PullRequest
0 голосов
/ 15 июня 2019

У меня есть данные столбца.Например, EELMEX00001.Мне нужно вставить еще один ноль после букв.Там, сделав длину 12. Может кто-нибудь помочь мне с запросом, чтобы сделать это.Если строка меньше 11, вставьте еще один ноль после букв.Любая помощь с благодарностью.

Ответы [ 2 ]

0 голосов
/ 15 июня 2019

Попробуй это. Это повлияет только на строки с LENGTH (Your_Column) = 11. Все остальные значения останутся такими же, как сейчас.

UPDATE your_Table
SET your_column = 
CASE 
    WHEN LENGTH(Your_Column) = 11 THEN CONCAT (your_column,'0') 
    ELSE your_column 
END;
0 голосов
/ 15 июня 2019

Если позиция всегда одна и та же (что кажется вероятным для вашего примера), вы можете сделать:

select concat(left(col, 6), '0', right(col, 5))

Если позиция может варьироваться, это сложнее в старых версиях MySQL.В MySQL 8+ вы можете сделать:

select concat(regexp_substr(col, '[^0-9]+', 1), '0', regexp_substr(col, '[0-9]+$', 1))
from (select 'EELMEX00001' as col) x

Если вы действительно хотите изменить столбец:

update t
    set col = concat(left(col, 6), '0', right(col, 5))
    where col regexp '^[a-zA-Z]{6}[0-9]{5}$';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...