2016-07-28 2 views
1

Я новичок в SQL запросе, и я пытаюсь обновить мои строки так:PostgreSQL обновление строка с фиксированным значным числом

1 ---> 0001

15 -> 0015

254 -> 0254

1458 -> 1458

типа моего столбца является текст, и есть много столбцов, так что я не могу справиться с

update table1 set col1 = 0001 where col1 = 1; 

и так далее ..

Это кажется простой вопрос, но после исследования, я не смог найти решение. все, что мне нужно, это что-то вроде

foreach row in col1 
if((int)row>0 and < 10) 
then row = "000" + row; 

Все тексты являются целыми значениями infact, но я должен хранить их как текст. Что такое sql-запрос вышеуказанного кода?

Благодаря

+0

Каким типом данных является этот столбец? Если это число, оно никогда не будет хранить ведущие нули –

+0

Нет, его тип - текст. (например, строка) – onur

ответ

2

Вы можете использовать функцию lpad():

update table1 
    set col1 = lpad(col1, 4, '0') 
where length(col1) < 4; 

Но вопрос: почему вы хранения чисел в виде текстовых значений? Это почти всегда плохой выбор.

+0

Спасибо, это работает, но изменений не должно быть. мы должны изменить col1 на «0». Это сработало для меня: update table1 set col1 = lpad (col1, 4, '0') где length (col1) <4; – onur

Смежные вопросы