Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как заменить нули слева  [new]
Nurgle
Guest
Задача
есть IDшники
00002
00011
00123
итд
как срезать нули слева чтобы IDшники были в формате:
2
11
123

???
7 сен 12, 15:01    [13130439]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
Nurgle
Guest
Как я понимаю это должна быть комбинация строковых функций ... только не могу въехать каких, и как это красиво сделать
7 сен 12, 15:05    [13130463]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
Glory
Member

Откуда:
Сообщений: 104751
преобразовать в int
7 сен 12, 15:06    [13130471]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
select ltrim (str(convert(int,'001')))
7 сен 12, 15:06    [13130477]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
##?
Guest
сконвертировать в numeric, а потом обратно, если уж так строку надо
7 сен 12, 15:07    [13130487]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
Nurgle
Guest
Glory,

convert(int, [field]) прокатило !!!
Спасибо, все так просто, а я голову ломал))
7 сен 12, 15:08    [13130498]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
SELECT REPLACE(LTRIM(REPLACE(ID,'0',' ')),' ','0');
7 сен 12, 15:09    [13130505]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Nurgle
Glory,

convert(int, [field]) прокатило !!!
Спасибо, все так просто, а я голову ломал))
А если в строке больше 10-ти цифр?
7 сен 12, 15:09    [13130507]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
iap
Nurgle
Glory,

convert(int, [field]) прокатило !!!
Спасибо, все так просто, а я голову ломал))
А если в строке больше 10-ти цифр?
Преобразовать в bigint, да?
А если в строке 100 цифр?
7 сен 12, 15:10    [13130518]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
##?
Guest
iap,

фигасебе "IDшники" из 100 символов
но Ваш вариант круче, катит для буковок внутри ID
7 сен 12, 15:13    [13130546]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
iap , а что ты полчишь из скажем 0203 ?
7 сен 12, 15:13    [13130550]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
##?
Guest
Stilet
iap , а что ты полчишь из скажем 0203 ?


да все он правильно получит, он же пробелы СЛЕВА режет
7 сен 12, 15:15    [13130574]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Stilet
iap , а что ты полчишь из скажем 0203 ?
а попробовать?
7 сен 12, 15:17    [13130591]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
если присмотреться то да ))
7 сен 12, 15:17    [13130597]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
красиво )
7 сен 12, 15:18    [13130612]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Вот если в ID есть свои, родные, пробелы, то всё немного усложнится.
7 сен 12, 15:19    [13130618]     Ответить | Цитировать Сообщить модератору
 Re: Как заменить нули слева  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
DECLARE @S VARCHAR(100)='000034567';
SELECT STUFF(@S,1,PATINDEX('%[^0]%',@S)-1,'');
7 сен 12, 15:46    [13130873]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить