LIKE (Transact-SQL) - SQL Server | Документы Microsoft
Воскресенье, 29.12.2013, 07:55
Заработок в интернете для новичков
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
МЕНЮ САЙТА
КАТЕГОРИИ раздела
  • Истории успеха
  • Оптимизация
  • B2b
  • Хлебные крошки
  • SEO
  • Социальные сети
  • Антивирус
  • Семантическое ядро
  • Реклама
  • Новости
  • Новости
    Оптимизация текстов под Яндекс и Гугл за счет их форматирования
    Обновлено: 17 февраля 2017 Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Сегодня я хочу продолжить тему, начатую в статье « Seo оптимизация текстов для коммерческого сайта ». В начале

    301 редирект в htaccess для SEO оптимизации страниц сайта
    Здравствуйте, уважаемые читатели блога Goldbusinessnet.com. Если говорить вкратце, то 301 редирект очень часто используют, когда необходимо исключить возникновение дублей, а также сохранить уже имеющийся

    Задача - дискретная оптимизация
    Задачи дискретной оптимизации - это задачи нахождения экстремума функции, заданной на дискретном ( чаще всего - конечном) множестве точек. Если область определения функции состоит из конечного числа точек,

    Команды для оптимизации cs go
    У многих людей слабое железо, и каждый второй хочет ускорить производительность своего компьютера и поднять FPS в играх CS:GO, CS:S, Minecraft и других играх. В этой статье я хочу раскрыть кучу секретов

    Настраиваем графику Assassin's Creed Unity
    Наконец-то вышла долгожданная Assassin’s Creed Unity, расширив возможности используемого в Assassin’s Creed IV: Black Flag движка AnvilNext по части стелс-экшна, игровой механики и почти безупречного воссоздания

    Антикризисная стратегия корпорации (компании) - АЛЬТ-Маркетинг - Альтернативные Маркетинговые Технологии
    АЛЬТ-Маркетинг - Альтернативные Маркетинговые Технологии Главная > Библиотека > Стратегическое планирование, разработка стратегии, корпоративные и функциональные стратегии

    Оптимизация SQL-запросов
    Метки статей: 100mbru , CentOS , cms , drupal , joomla , LAMP , linux , mysql , nicru , Open-Source , Red Hat , seo , Typo3 , ubuntu , авто , администрирование , алгоритмы , алкоголь

    Методы и способы оптимизации налогообложения на предприятии в 2017 году
    Для каждой компании основной задачей является повышение рентабельности своего бизнеса. Общеизвестно, что значительный размер  затрат предприятия составляют налоговые платежи. Ежегодно политика налоговой

    Seo
    Как я и говорил, начинаю публикации в блоге со статей для новичков, так сказать, потрогаем азы… SEO  – это просто аббревиатура, которая в английском языке произносится и пишется как Search Engines

    Оптимизация производительности MySQL на ОС Linux
    Существует множество факторов, влияющих на производительность MySQL в Azure, которые зависят и от выбора виртуального оборудования, и от конфигурации программного обеспечения. Эта статья посвящена оптимизации

    Праздники России
    Статистика
    Rambler's Top100




    Онлайн всего: 0
    Гостей: 0
    Пользователей: 0

    LIKE (Transact-SQL)

    1. Синтаксис
    2. аргументы
    3. Типы результатов
    4. Результат Значение
    5. Использование символа подстановки%
    6. Использование подстановочных знаков в качестве литералов
    7. Сопоставление с шаблоном с предложением ESCAPE
    8. Примеры
    9. D. Использование подстановочных знаков []
    10. Примеры: хранилище данных SQL Azure и хранилище параллельных данных
    11. Смотрите также

    ОТНОСИТСЯ К: ОТНОСИТСЯ К:   SQL Server   База данных SQL Azure   Хранилище данных SQL Azure   Параллельное хранилище данных   Определяет, соответствует ли конкретная символьная строка указанному шаблону SQL Server База данных SQL Azure Хранилище данных SQL Azure Параллельное хранилище данных

    Определяет, соответствует ли конкретная символьная строка указанному шаблону. Шаблон может включать в себя обычные символы и символы подстановки. Во время сопоставления с образцом обычные символы должны точно соответствовать символам, указанным в строке символов. Однако подстановочные знаки могут сопоставляться с произвольными фрагментами строки символов. Использование подстановочных знаков делает оператор LIKE более гибким, чем использование операторов сравнения строк = и! =. Если какой-либо из аргументов не относится к типу данных символьной строки, компонент SQL Server Database Engine преобразует его в тип данных символьной строки, если это возможно.

    Соглашения о синтаксисе Transact-SQL Соглашения о синтаксисе Transact-SQL

    Синтаксис

    - Синтаксис для SQL Server и базы данных SQL Azure match_expression [NOT] LIKE шаблон [ESCAPE escape_character] - Синтаксис для Azure SQL Data Warehouse и Параллельного хранилища данных match_expression [NOT] LIKE шаблон

    аргументы

    MATCH_EXPRESSION
    Действителен ли выражение символьного типа данных.

    шаблон
    Конкретная строка символов для поиска в match_expression и может включать следующие допустимые символы подстановки. шаблон может быть максимум 8000 байтов.

    Подстановочный знак Описание Пример% Любая строка из нуля или более символов. WHERE title LIKE «% computer%» находит все названия книг со словом «компьютер» в любом месте названия книги. _ (подчеркивание) Любой отдельный символ. ГДЕ au_fname LIKE '_ean' находит все четырехбуквенные имена, заканчивающиеся на ean (Дин, Шон и т. Д.). [] Любой отдельный символ в пределах указанного диапазона ([af]) или набора ([abcdef]). WHERE au_lname LIKE '[CP] arsen' находит фамилии автора, заканчивающиеся на arsen и начинающиеся с любого отдельного символа между C и P, например, Carsen, Larsen, Karsen и так далее. При поиске по диапазону символы, включенные в диапазон, могут различаться в зависимости от правил сортировки. [^] Любой отдельный символ вне указанного диапазона ([^ af]) или набора ([^ abcdef]). WHERE au_lname LIKE 'de [^ l]%' все фамилии авторов, начинающиеся с de, и где следующая буква не l.

    escape_character
    Символ, помещенный перед подстановочным знаком для обозначения того, что подстановочный знак интерпретируется как обычный символ, а не как подстановочный знак. escape_character - это символьное выражение, которое не имеет значения по умолчанию и должно содержать только один символ.

    Типы результатов

    логический

    Результат Значение

    LIKE возвращает TRUE, если выражение match_ex соответствует указанному шаблону .

    Когда вы выполняете сравнение строк с помощью LIKE, все символы в строке шаблона являются значимыми. Значимые символы включают любые начальные или конечные пробелы. Если сравнение в запросе возвращает все строки со строкой LIKE 'abc' (abc, за которым следует один пробел), строка, в которой значением этого столбца является abc (abc без пробела), не возвращается. Однако конечные пробелы в выражении, которому сопоставляется шаблон, игнорируются. Если сравнение в запросе возвращает все строки со строкой LIKE 'abc' (abc без пробела), возвращаются все строки, которые начинаются с abc и имеют ноль или более завершающих пробелов.

    Сравнение строк с использованием шаблона, содержащего данные типа char и varchar, может не пройти сравнение LIKE из-за того, как данные хранятся для каждого типа данных. В следующем примере передается локальная переменная char в хранимую процедуру, а затем используется сопоставление с шаблоном для поиска всех сотрудников, чьи фамилии начинаются с указанного набора символов.

    - Использует AdventureWorks CREATE PROCEDURE FindEmployee @EmpLName char (20) AS SELECT @EmpLName = RTRIM (@EmpLName) + '%'; ВЫБЕРИТЕ p.FirstName, p.LastName, a.City FROM Person.Person p ПРИСОЕДИНЯЙТЕСЬ к Person.Address ON ON p.BusinessEntityID = a.AddressID, ГДЕ p.LastName LIKE @EmpLName; GO EXEC FindEmployee @EmpLName = 'Barb'; ИДТИ

    В процедуре FindEmployee строки не возвращаются, поскольку переменная char (@EmpLName) содержит конечные пробелы, если имя содержит менее 20 символов. Поскольку столбец LastName имеет тип varchar , конечных пробелов нет. Эта процедура не выполняется, потому что конечные пробелы являются значительными.

    Однако следующий пример завершается успешно, потому что конечные пробелы не добавляются в переменную varchar .

    - Использует AdventureWorks CREATE PROCEDURE FindEmployee @EmpLName varchar (20) AS SELECT @EmpLName = RTRIM (@EmpLName) + '%'; ВЫБЕРИТЕ p.FirstName, p.LastName, a.City FROM Person.Person p ПРИСОЕДИНЯЙТЕСЬ к Person.Address ON ON p.BusinessEntityID = a.AddressID, ГДЕ p.LastName LIKE @EmpLName; GO EXEC FindEmployee @EmpLName = 'Barb';

    Вот набор результатов.

    Имя Фамилия Город ---------- -------------------- --------------- Анжела Барбариол Снохомиш Дэвид Барбер Снохомиш (пострадал 2 ряд)

    LIKE поддерживает сопоставление с шаблоном ASCII и сопоставление с шаблоном Unicode. Когда все аргументы ( match_expression , pattern и escape_character , если есть) являются символьными типами данных ASCII, выполняется сопоставление с шаблоном ASCII. Если какой-либо из аргументов относится к типу данных Unicode, все аргументы преобразуются в Unicode и выполняется сопоставление с шаблоном Unicode. Когда вы используете данные Unicode ( типы данных nchar или nvarchar ) с LIKE, конечные пробелы имеют большое значение; однако для данных, не относящихся к Юникоду, конечные пробелы не имеют существенного значения. Unicode LIKE совместим со стандартом ISO. ASCII LIKE совместим с более ранними версиями SQL Server.

    Ниже приведен ряд примеров, которые показывают различия в строках, возвращаемых между сопоставлением с шаблоном ASCII и Unicode LIKE.

    - сопоставление ASCII-паттерна со столбцом char CREATE TABLE t (col1 char (30)); INSERT INTO t VALUES («Роберт Кинг»); ВЫБЕРИТЕ * ОТ ГДЕ col1 НРАВИТСЯ '% King'; - возвращает 1 строку - сопоставление шаблона Unicode со столбцом nchar CREATE TABLE t (col1 nchar (30)); INSERT INTO t VALUES («Роберт Кинг»); ВЫБЕРИТЕ * ОТ ГДЕ col1 НРАВИТСЯ '% King'; - строки не возвращаются - сопоставление с шаблоном Unicode для столбца nchar и RTRIM CREATE TABLE t (col1 nchar (30)); INSERT INTO t VALUES («Роберт Кинг»); ВЫБЕРИТЕ * ОТ ГДЕ RTRIM (col1) КАК '% King'; - возвращает 1 строку

    Использование символа подстановки%

    Если указан символ LIKE «5%», компонент Database Engine ищет число 5, за которым следует любая строка из нуля или более символов.

    Например, следующий запрос показывает все динамические административные представления в базе данных AdventureWorks2012 , поскольку все они начинаются с букв dm.

    - Использует AdventureWorks SELECT Name FROM sys.system_views, ГДЕ Имя LIKE 'dm%'; ИДТИ

    Чтобы увидеть все объекты, которые не являются динамическими представлениями управления, используйте NOT LIKE 'dm%'. Если у вас есть в общей сложности 32 объекта, и LIKE находит 13 имен, которые соответствуют шаблону, NOT LIKE находит 19 объектов, которые не соответствуют шаблону LIKE.

    Вы не всегда можете найти одинаковые имена с шаблоном, таким как LIKE '[^ d] [^ m]%'. Вместо 19 имен вы можете найти только 14 со всеми именами, начинающимися с d или имеющими m в качестве второй буквы, исключенными из результатов, и именами представления динамического управления. Это происходит потому, что строки совпадения с отрицательными подстановочными знаками оцениваются пошагово, по одному подстановочному знаку за раз. Если совпадение не выполняется в какой-либо момент оценки, оно устраняется.

    Использование подстановочных знаков в качестве литералов

    Вы можете использовать подстановочные знаки, соответствующие символам в качестве буквенных символов. Чтобы использовать подстановочный знак в качестве литерального символа, заключите подстановочный знак в скобки. В следующей таблице показано несколько примеров использования ключевого слова LIKE и подстановочных знаков [].

    Символ Значение LIKE '5 [%]' 5% LIKE '[_] n' _n LIKE '[a-cdf]' a, b, c, d или f LIKE '[-acdf]' -, a, c, d или f LIKE '[[]' [LIKE ']'] LIKE 'abc [_] d%' abc_d и abc_de LIKE 'abc [def]' abcd, abce и abcf

    Сопоставление с шаблоном с предложением ESCAPE

    Вы можете искать строки символов, которые содержат один или несколько специальных символов подстановки. Например, таблица скидок в базе данных клиентов может хранить значения скидок, которые включают знак процента (%). Чтобы искать знак процента как символ, а не как подстановочный знак, необходимо указать ключевое слово ESCAPE и escape-символ. Например, пример базы данных содержит столбец с именем comment, который содержит текст 30%. Для поиска любых строк, содержащих строку 30% в любом месте столбца комментариев, укажите предложение WHERE, например, WHERE comment LIKE '% 30! %%' ESCAPE '!'. Если ESCAPE и escape-символ не указаны, компонент Database Engine возвращает любые строки со строкой 30.

    Если после escape-символа в шаблоне LIKE нет символа, шаблон недопустим и LIKE возвращает FALSE. Если символ после escape-символа не является подстановочным символом, escape-символ отбрасывается, а следующий символ обрабатывается в шаблоне как обычный символ. Эти символы включают знак процента (%), знак подчеркивания (_) и символы подстановки в левой скобке ([), когда они заключены в двойные скобки ([]). Экранирующие символы можно использовать в двойных скобках ([]), в том числе для экранирования (^), дефиса (-) или правой скобки (]).

    0x0000 ( char (0) ) является неопределенным символом в сопоставлениях Windows и не может быть включен в LIKE.

    Примеры

    В следующем примере все телефонные номера с кодом города 415 найдены в таблице PersonPhone.

    - Использует AdventureWorks SELECT p.FirstName, p.LastName, ph.PhoneNumber FROM Person.PersonPhone AS ph INNER JOIN Присоединиться Person.Person AS p ON ph.BusinessEntityID = p.BusinessEntityID ГДЕ ph.PhoneNumber LIKE '415%' ЗАКАЗАТЬ на p. Фамилия; ИДТИ

    Вот набор результатов.

    Имя Фамилия Телефон ----------------- ------------------- ----------- - Рубен Алонсо 415-555-124 Шелби Кук 415-555-0121 Карен Ху 415-555-0114 Джон Лонг 415-555-0147 Дэвид Лонг 415-555-0123 Гилберт Ма 415-555-0138 Мередит Морено 415-555-0131 Александра Нельсон 415-555-0174 Тейлор Паттерсон 415-555-0170 Габриэль Рассел 415-555-0197 Далтон Симмонс 415-555-0115 (затронуто 11 рядов) `` `### B. Использование NOT LIKE с% Подстановочный знак В следующем примере все телефонные номера в таблице «PersonPhone» находятся с кодами, отличными от «415». `` `sql - использует AdventureWorks SELECT p.FirstName, p.LastName, ph.PhoneNumber FROM Person.PersonPhone AS ph ВНУТРЕННЕЕ СОЕДИНЕНИЕ Person.Person AS p ON ph.BusinessEntityID = p.BusinessEntityID ГДЕ ph.PhoneNumber NOT LIKE '415% 'AND p.FirstName =' Gail 'ORDER BY p.LastName; ИДТИ

    Вот набор результатов.

    Имя Фамилия Телефон ---------------------- -------------------- ----- -------------- Гейл Александр 1 (11) 500 555-0120 Гейл Батлер 1 (11) 500 555-0191 Гейл Эриксон 834-555-0132 Гейл Эриксон 849-555-0139 Гейл Гриффин 450-555-0171 Гейл Мур 155-555-0169 Гейл Рассел 334-555-0170 Гейл Вестовер 305-555-0100 (затронуто 8 рядов) `` `### C. Использование предложения ESCAPE В следующем примере используется предложение `ESCAPE` и escape-символ для поиска точной символьной строки` 10-15% `в столбце` c1` таблицы `mytbl2`. `` `sql USE tempdb; GO ЕСЛИ СУЩЕСТВУЕТ (ВЫБЕРИТЕ TABLE_NAME ИЗ INFORMATION_SCHEMA.TABLES, ГДЕ TABLE_NAME = 'mytbl2') DROP TABLE mytbl2; ИСПОЛЬЗУЙТЕ tempdb; GO CREATE TABLE mytbl2 (имя пользователя c1); GO INSERT mytbl2 VALUES («Скидка на 10-15% скидка»), («Скидка на скидку .10-.15 скидка»); GO ВЫБРАТЬ c1 ОТ mytbl2 ГДЕ c1 НРАВИТСЯ '% 10-15!% Off%' ESCAPE '!'; ИДТИ

    D. Использование подстановочных знаков []

    В следующем примере выполняется поиск сотрудников в таблице Person с именем Cheryl или Sheryl.

    - Использует AdventureWorks SELECT BusinessEntityID, FirstName, LastName FROM Person.Person, ГДЕ FirstName LIKE '[CS] heryl'; ИДТИ

    Следующий пример находит строки для сотрудников в таблице Person с фамилиями Zheng или Zhang.

    - Использует AdventureWorks SELECT LastName, FirstName FROM Person.Person, ГДЕ LastName LIKE 'Zh [ae] ng' ORDER BY LastName ASC, FirstName ASC; ИДТИ

    Примеры: хранилище данных SQL Azure и хранилище параллельных данных

    Следующий пример находит всех сотрудников в таблице DimEmployee с телефонными номерами, которые начинаются с 612.

    - Использует AdventureWorks SELECT FirstName, LastName, Phone From DimEmployee, ГДЕ телефон НРАВИТСЯ '612%' ORDER от LastName;

    Следующий пример находит все телефонные номера в таблице DimEmployee, которые не начинаются с 612.

    - Использует AdventureWorks SELECT FirstName, LastName, Phone From DimEmployee, ГДЕ телефон НЕ ПОЛУЧИЛ «612%» ORDER от LastName;

    В следующем примере обнаруживаются все телефонные номера с кодом города, начиная с 6 и заканчивая 2 в таблице DimEmployee. Подстановочный знак% включается в конце шаблона поиска, чтобы соответствовать всем последующим символам в значении телефонного столбца.

    - Использует AdventureWorks SELECT FirstName, LastName, Phone From DimEmployee, ГДЕ телефон LIKE '6_2%' ORDER от LastName;

    Смотрите также

    PATINDEX (Transact-SQL)
    Выражения (Transact-SQL)
    Встроенные функции (Transact-SQL)
    SELECT (Transact-SQL)
    ГДЕ (Transact-SQL)

    ДОБАВЬ В ЗАКЛАДКУ
    Форма входа
    ДРУЗЬЯ сайта

    Ярмарка Мастеров - ручная работа, handmade
    Способы заработка


    Copyright MyCorp © 2013
    Создать сайт бесплатно