выбор цифр справа от последнего нуля в SQL Server - PullRequest
3 голосов
/ 13 июля 2011

У меня есть таблица с номером NA0000000012345. Я хотел бы выбрать 12345, а затем, когда это NA0000000123456, я бы хотел, чтобы оператор select исправил его. Поэтому мне нужно условие в выражении RIGHT, и я не уверен, как это структурировать в SQL Server.

ex

Right(Mystring,left of last 0 starting from the left) 

Спасибо за вашу помощь

Ответы [ 2 ]

5 голосов
/ 13 июля 2011

Вы можете выбрать 1-й ненулевой цифровой символ;

declare @value varchar(20) = 'NA000000123456'

select substring(@value, patindex('%[1-9]%', @value), len(@value))
0 голосов
/ 13 июля 2011

Если у вас есть сочетание букв и цифр и вы хотите только последний номер, вот синтаксис. Сценарий запускается с правой стороны от «значения» и ищет первый номер без номера.

declare @t table(value varchar(20)) 

insert @t values ('NA000000123a456')
insert @t values ('NA0100000123456')
insert @t values ('NA0100a00123456')

SELECT CAST(RIGHT(value, patindex('%[^0-9]%', reverse(value)) -1) as BIGINT)
FROM @t

Результат:

456
100000123456
123456
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...