Как проделать эту операцию с нулями?

Здравствуйте, у меня есть эта таблица:

0001
003
02
1234
0012

И я хотел бы изменить эту таблицу вот так

1000
300
20
1234
1200

Я имею в виду, что если перед числом стоит ноль, я бы хотел поставить его справа, например. 0012 станет 1200

Большое Вам спасибо

Зачем тебе это нужно?

Tim Biegeleisen 17.12.2018 16:18

Что делать, если значение содержит только нули?

Robert Kock 17.12.2018 16:27
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
2
60
2

Ответы 2

Вы можете использовать строковые операции:

select v.*,
      stuff(col, 1, patindex('%[^0]%', col) - 1, '') + left(col, patindex('%[^0]%', col) - 1)
from (values ('0001'), ('003'), ('02'), ('1234')) v(col)

@TimBiegeleisen Знаете, не так-то просто заработать репутацию SQL, если вы живете в том же часовом поясе, что и Гордон. Вздох.

The Impaler 17.12.2018 16:36

@TheImpaler Да, и поверьте мне, я считаю свои благословения каждый день, когда просыпаюсь, когда я знаю, что Гордон собирается спать. Но для меня это палка о двух концах, потому что в рабочее время в Азии мы не совсем понимаем тот объем, который вы получаете в США / Великобритании.

Tim Biegeleisen 17.12.2018 16:37

Просто добавьте 4 нуля в конце и извлеките подстроку, начиная с 1-9:

SELECT test, SUBSTRING(test + '0000', patindex('%[1-9]%', test), LEN(test))
FROM (VALUES
    ('0001'),
    ('003'),
    ('02'),
    ('1234'),
    ('0012')
) AS tests(test)

Для обработки сложных крайних случаев используйте:

SUBSTRING(test + '0000', ISNULL(NULLIF(patindex('%[1-9]%', test), 0), 1), LEN(test))

Другие вопросы по теме