В одной таблице моего столбца номеров баз данных формат ниже. У меня есть строки, которые выглядят так: мне нужно удалить все нули из начального номера или начальной строки значения столбца.
Approval Table in this column name is ApprovalNumber
SNO ApprovalNumber
---- -----------
1 0007890677
2 0090780788
3 767078
4 009033
5 05097
6 005765078
Здесь, в этой таблице, мне нужно получить все записи и значения столбцов до того, как 0 должны быть удалены при выборе результата запроса. Мой ожидаемый результат ниже
SNO ApprovalNewNo
---- -----------
1 7890677
2 90780788
3 767078
4 9033
5 5097
6 5765078
Я пробовал код ниже, но не работал
SELECT LTRIM(ApprovalNumber,"0") AS ApprovalNewNo
FROM `ApprovalTable`
Может ли кто-нибудь помочь в этом вопросе.
Я думаю, реальный вопрос: почему вы храните числа в виде строк в своей базе данных?
На заметку: разделителем строковых литералов в SQL является одинарная кавычка, а не двойная кавычка. Хотя MySQL допускает «0» при определенных условиях, это может сделать ваш запрос недействительным или привести к неожиданным результатам с другими настройками. Следовательно, лучше придерживаться правильных одинарных кавычек. Демо: dbfiddle.uk/XxAG-NJ4.
Вы хотите получить результат в виде символьного или целочисленного типа данных?






Используйте TRIM с параметром LEADING:
select *, TRIM(LEADING '0' FROM ApprovalNumber)
from mytable
Поскольку это не буквенно-цифровое число, добавление 0 к ApprovalNumber может работать:
select *, ApprovalNumber + 0
from mytable
Все работает, спасибо от Ниранджана Кумара Чодама.
Полезно читать документы: dev.mysql.com/doc/refman/8.0/en/string-functions.html.
LTRIMудаляет только пробелы и не принимает второй параметр в MySQL. Вместо этого вам нужноTRIM, как показано в ответе SelVazi. И в следующий раз, пожалуйста, не говорите «но не работает», а расскажите нам, что происходит технически. С вашим запросом вы должны получить сообщение об ошибке. Почему ты держишь это в секрете?