С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 06.03.2015
Сообщений: 75

Оператор LIKE, совпадение по шаблону

28.07.2017, 18:39. Показов 3129. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый времени суток, форумчане. Нужна ваша подсказка в след. вопросе. Имеется таблица Inventory, со след. значениями
SQL
1
2
3
4
5
6
7
8
ID     Inventory_Code          Description
1   IN_345678       office radiotelephone
2   IN_34578                    office lalala
3   INARMCHAIR          office armchair
4   INPHONE                 office phone
5   IN34578                 office chair
6   IN_34578                    notebook
7   IN_34578                    display
.
Так вот нужно вывести с помощью ТОЛЬКО оператора LIKE:
1) Inventory_Code, которые не содержат цифр
2) Inventory_Code, которые не содержат символа '_' (нижнее подчеркивание).
Вот я старался и думал, в результате родил
1)
SQL
1
2
SELECT * FROM Inventory
   WHERE InventoryCode LIKE '%^[0-9]%' - не пашет
2)
SQL
1
2
 SELECT * FROM Inventory
 WHERE InventoryCode LIKE '%^[#_]%' ESCAPE '#'
- тоже не пашет. [SQL]

Подскажите, как бы правильно написать шаблоны поиска ?

Добавлено через 8 минут
есть у меня подозрения, что дело всё в знаке отрицания, т.е в '^'. Но без него тут никуда, так как надо использовать только операто LIKE.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.07.2017, 18:39
Ответы с готовыми решениями:

Сравнить каждый элемент с каждым, если есть совпадение, то соединить всю строку, в которой найдено совпадение
Доброго времени суток! Есть два массива строк разного размера (элементы массива разделены запятой). Необходимо сравнить каждый элемент с...

Замена текста по шаблону и удаление внешних тегов, относящихся к найденному шаблону
Привет всем, Есть небольшой html файл в котором надо искать вот такие шаблоны: @130, @131, @132 ... (т.е. @ + 3 цифры) и заменить,...

При попытке добавить оператор else, появляется оператор "Ожидался оператор"
Здравствуйте, помогите пожалуйста. У меня есть программа, которая решает квадратные уравнения. Но почему-то, когда я пытаюсь добавить...

12
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
28.07.2017, 19:33
1.
T-SQL
1
SELECT * FROM Inventory WHERE InventoryCode NOT LIKE '%[0123456789]%'
2.
T-SQL
1
SELECT * FROM Inventory WHERE InventoryCode NOT LIKE '%[_]%'
Добавлено через 6 минут
Символ ^ имеет особое значение только на первой позиции внутри квадратных скобок.
И сомневаюсь, что ESC-символ может стоять внутри квадратных скобок (он там воспринимается как один простой символ).
0
0 / 0 / 1
Регистрация: 06.03.2015
Сообщений: 75
29.07.2017, 14:32  [ТС]
Фишка задания в том чтобы его выполнить ТОЛЬКО с помощью оператора LIKE.
Я пробовал и так как ві подсказали
SQL
1
2
SELECT * FROM Inventory 
WHERE InventoryCode LIKE '%[^0-9]%'
- не работает, выводи все строки, включая даже то что содержат цифры.
И ещё такой вопрос, имеет значение, что поле InventoryCode типа varchar ? Тогда может в критерии поиска какой-то CAST к varchar прилепить ??
0
5958 / 4534 / 1094
Регистрация: 29.08.2013
Сообщений: 28,141
Записей в блоге: 3
29.07.2017, 14:45
у меня работает так

SQL
1
2
3
4
5
6
7
8
9
10
11
12
DECLARE @t TABLE (ID INT, Inventory_Code nvarchar(50),Description nvarchar(50))
 
INSERT @t VALUES (1,   'IN_345678'  , 'office radiotelephone' )
INSERT @t VALUES (2,   'IN_34578'   , 'office lalala')
INSERT @t VALUES (3,   'INARMCHAIR' , 'office armchair')
INSERT @t VALUES (4,   '_INPHONE'    , 'office phone')
INSERT @t VALUES (5,   'IN34578'    , 'office chair')
INSERT @t VALUES (6,   'IN_34578'   , 'notebook')
INSERT @t VALUES (7,   'IN_34578'   , 'display')
 
SELECT * FROM @t
WHERE Inventory_Code NOT LIKE '%[_,1-9]%'
SQL2012
0
0 / 0 / 1
Регистрация: 06.03.2015
Сообщений: 75
29.07.2017, 15:09  [ТС]
Но вы здесь используете оператор NOT LIKE А мне как-бы надо через просто через LIKE ))
0
5958 / 4534 / 1094
Регистрация: 29.08.2013
Сообщений: 28,141
Записей в блоге: 3
29.07.2017, 15:18
нет оператора NOT LIKE
это просто такая запись оператора LIKE
вот почитай
https://technet.microsoft.com/... .110).aspx

Добавлено через 1 минуту
опять же сделай LIKE - это будут те что не нужны
и далее из основной таблицы исключи те что не нужны
0
0 / 0 / 1
Регистрация: 06.03.2015
Сообщений: 75
29.07.2017, 15:20  [ТС]
В таком случае, благодарю вас. И прошу извинить за некомпетентность в данном вопросе
0
5958 / 4534 / 1094
Регистрация: 29.08.2013
Сообщений: 28,141
Записей в блоге: 3
29.07.2017, 15:44
Рад был помочь вам восполнить знания в этом вопросе. Обращайтесь с любым вопросом в любое время
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
29.07.2017, 17:44
Цитата Сообщение от qwertehok Посмотреть сообщение
у меня работает так

SQL
1
2
3
4
5
6
7
8
9
10
11
12
DECLARE @t TABLE (ID INT, Inventory_Code nvarchar(50),Description nvarchar(50))
 
INSERT @t VALUES (1,   'IN_345678'  , 'office radiotelephone' )
INSERT @t VALUES (2,   'IN_34578'   , 'office lalala')
INSERT @t VALUES (3,   'INARMCHAIR' , 'office armchair')
INSERT @t VALUES (4,   '_INPHONE'    , 'office phone')
INSERT @t VALUES (5,   'IN34578'    , 'office chair')
INSERT @t VALUES (6,   'IN_34578'   , 'notebook')
INSERT @t VALUES (7,   'IN_34578'   , 'display')
 
SELECT * FROM @t
WHERE Inventory_Code NOT LIKE '%[_,1-9]%'
SQL2012
А 0 - это не цифра, да? И что там делает запятая?
0
0 / 0 / 1
Регистрация: 06.03.2015
Сообщений: 75
29.07.2017, 18:04  [ТС]
в квадратных скобочках перечисление параметров, которые должны встретиться. Их может несколько и отделяются они запятой.
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
29.07.2017, 18:21
Цитата Сообщение от Roman8 Посмотреть сообщение
и отделяются они запятой
А мужики-то не знают! ©
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,600
02.08.2017, 00:13
Цитата Сообщение от iap Посмотреть сообщение
А 0 - это не цифра, да? И что там делает запятая?
1) Извините, вопрос: Где там "0" ?
2) "запятая" нечего не делает, можно и без (зап-и)
Код работает правильно на T-SQL 2008 тоже.
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
02.08.2017, 10:37
Цитата Сообщение от xxbesoxx Посмотреть сообщение
1) Извините, вопрос: Где там "0" ?
2) "запятая" нечего не делает, можно и без (зап-и)
Код работает правильно на T-SQL 2008 тоже.
По-моему, я сначала процитировал, а потом написал про 0 и запятую в этой цитате.
Поэтому ваши вопросы непонятны мне

"0" там нет. Так мой вопрос был как раз "почему?"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.08.2017, 10:37
Помогаю со студенческими работами здесь

Используя условный оператор if и оператор альтернативного выбора otherwise найдите значение функции
Помогите пожалуйста написать алгоритм с проверкой условия. Ни как не пойму, там и в зависит от х, и н зависит от х. Файл прилагается. ...

Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки
Здравствуйте. В С++ я абсолютный новичок, поэтому с первым же заданием возникли определённые трудности. Будьте добры, помогите решить. Буду...

Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1
В С++ я ноль, помогите пожалуйста написать прогу Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 ...

Зачем нужен оператор while (именно while, а не do-while), когда есть оператор for?
Четкий и понятный ответ в литературе и на других web ресурсах не найден, поэтому вопрос к знатокам: зачем нужен оператор while (именно...

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор *
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор копирования, бинарный оператор суммы «*»,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru