Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выбрать все строки по шаблону  [new]
Badhabit
Member

Откуда:
Сообщений: 90
Подскажите как сделать выборку строк у которых на конце нет двух групп цифр, разделённых дефисом? Т.е
1. Какой-то текст 123-456
2. Какой-то текст 2564. 234-754
3. Текст753-1 патиссон


Надо чтобы в результате выбралась только 3 строка
14 ноя 16, 16:08    [19892038]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать все строки по шаблону  [new]
aleks2
Guest
Badhabit
Подскажите как сделать выборку строк у которых на конце нет двух групп цифр, разделённых дефисом? Т.е
1. Какой-то текст 123-456
2. Какой-то текст 2564. 234-754
3. Текст753-1 патиссон


Надо чтобы в результате выбралась только 3 строка


Открой для себя reverse.

ЗЫ. Хотя... можно и так

not like '%[0-9]-[0-9]%'
or
not like '%[^0-9]'
14 ноя 16, 16:18    [19892117]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать все строки по шаблону  [new]
iap
Member

Откуда: Москва
Сообщений: 47084
WITH T AS(SELECT * FROM(VALUES
 ('Какой-то текст 123-456')
,('Какой-то текст 2564. 234-754')
,('Текст753-1 патиссон'))T(S))
SELECT S
FROM T
WHERE RIGHT(S,1+CHARINDEX('-',REVERSE(S))) NOT LIKE '%[0123456789]-[0123456789]%' OR RIGHT(S,CHARINDEX('-',REVERSE(S))) LIKE '%[^0123456789-]%';
14 ноя 16, 16:28    [19892176]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать все строки по шаблону  [new]
iap
Member

Откуда: Москва
Сообщений: 47084
Если причесать слегка
WITH
 T AS
 (
  SELECT * FROM
  (
   VALUES
   ('Какой-то текст 123-456')
  ,('Какой-то текст 2564. 234-754')
  ,('Текст753-1 патиссон')
  )T(S)
 )
,F(S) AS(SELECT RIGHT(S,1+CHARINDEX('-',REVERSE(S))) FROM T)
SELECT S
FROM F
WHERE S NOT LIKE '%[0123456789]-[0123456789]%' OR S LIKE '%[^0123456789-]%';
14 ноя 16, 16:32    [19892216]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать все строки по шаблону  [new]
Badhabit
Member

Откуда:
Сообщений: 90
aleks2, спасибо!
15 ноя 16, 19:50    [19897583]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить