|| (ИЛИ) (Entity SQL) — ADO.NET

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья

Объединяет два выражения типа Boolean .

Синтаксис

boolean_expression OR boolean_expression
-- or
boolean_expression || boolean_expression

Аргументы

boolean_expressionЛюбое допустимое выражение, возвращающее .Boolean

Возвращаемое значение

true , если любое из условий есть true; в противном случае false.

OR — логический оператор Entity SQL. Он используется только для объединения двух условий. Если в инструкции используется более одного логического оператора, то операторы OR вычисляются после операторов AND. Однако порядок выполнения можно изменить с помощью скобок.

Двойная вертикальная черта (||) имеет ту же функциональность, что и оператор OR.

В следующей матрице показаны возможные сочетания входных и возвращаемых значений.

TRUEFALSENULL
TRUETRUETRUETRUE
FALSETRUEFALSENULL
NULLTRUENULLNULL

Пример

Следующий запрос Entity SQL использует оператор OR, чтобы объединить два выражения типа Boolean . Запрос основан на модели AdventureWorks Sales. Для компиляции и запуска этого запроса выполните следующие шаги.

  1. Выполните процедуру из статьи How to: Execute a Query that Returns StructuralType Results.

  2. Передайте следующий запрос в качестве аргумента методу ExecuteStructuralTypeQuery :

-- OR
SELECT VALUE product FROM AdventureWorksEntities.Products 
    AS product 
WHERE product.ListPrice = @price1 OR product.ListPrice = @price2
-- || 
SELECT VALUE product FROM AdventureWorksEntities.Products 
    AS product 
WHERE product.ListPrice = @price1 || product.ListPrice = @price2

См. также раздел

  • Справочник по Entity SQL

Предикаты SQL AND и OR: примеры, синтаксис

Операторы SQL AND и SQL OR — предикаты языка SQL, служащие для создания логических выражений. В SQL предикатами называются операторы, возвращающие значения TRUE или FALSE. Предикат SQL AND — эквивалент логического умножения (конъюнкции), предикат SQL OR — эквивалент логического сложения (дизъюнкции).

Таблица истинности для предикатов следующая:

first_expressionlast_expression
ANDOR
TRUETRUETRUETRUE
TRUEFALSEFALSETRUE
FALSETRUEFALSETRUE
FALSEFALSEFALSEFALSE

Это значит, что, для выполнения условия предиката SQL AND должны быть выполнены оба условия. Для выполнения предиката SQL OR должно быть выполнено хотя бы одно условие.

Предикат SQL AND имеет следующий синтаксис:

boolean_expression AND boolean_expression

Предикат SQL OR имеет следующий синтаксис:

boolean_expression OR boolean_expression

Примеры оператора SQL AND & OR.  Имеется следующая таблица Planets:

IDPlanetNameRadiusSunSeasonOpeningYear
HavingRings
Opener
1Mars33966871659NoChristiaan Huygens
2Saturn6026810759.22Yes
3Neptune24764601901846YesJohn Couch Adams
4Mercury2439115.881631NoNicolaus Copernicus
5Venus60512431610NoGalileo Galilei

Пример 1.

Используя операторы SQL AND и SQL OR вывести записи планет, у которых радиус планеты меньше 10000 и открытых (OpeningYear) после 1620:

SELECT *
FROM Planets
WHERE Radius < 10000 AND OpeningYear > 1620

Результат:

IDPlanetNameRadiusSunSeasonOpeningYearHavingRingsOpener
1Mars3396
687
1659NoChristiaan Huygens
4Mercury2439115.881631NoNicolaus Copernicus

Пример 2. Используя операторы SQL AND и SQL OR вывести записи планет, названия которых начинаются с буквы «N» или заканчиваются на букву «s» и не имеющие колец:

SELECT *
FROM Planets
WHERE (PlanetName LIKE 'N%'
OR PlanetName LIKE '%s')
AND HavingRings = 'No'

Результат:

IDPlanetNameRadiusSunSeason
OpeningYearHavingRingsOpener
1Mars33966871659NoChristiaan Huygens
5Venus60512431610NoGalileo Galilei

В этом примере используются как предикат SQL AND так и SQL OR. Конечно же, в запросах  их можно использовать сколько угодно раз (так же как и скобки, которые их ограничивают), для задания более точного условия выборки.

Оператор SQL Server OR на практических примерах

Резюме : в этом руководстве вы узнаете, как использовать оператор SQL Server ИЛИ для объединения двух логических выражений.

Знакомство с SQL Server

Оператор OR

SQL Server

OR — это логический оператор, позволяющий комбинировать два логических выражения. Он возвращает TRUE , когда любое из условий оценивается как TRUE .

Ниже показан синтаксис ИЛИ оператор:

 логическое_выражение ИЛИ логическое_выражение
  Язык кода: SQL (язык структурированных запросов) (sql)  

В этом синтаксисе boolean_expression — это любое допустимое логическое выражение, которое оценивается как истинное, ложное и неизвестное.

В следующей таблице показан результат оператора ИЛИ при объединении ИСТИНА , ЛОЖЬ

и НЕИЗВЕСТНО :

2 ВЕРНО 9000 056 ЛОЖЬ
ИСТИНА0047 ЛОЖЬ НЕИЗВЕСТНО
ВЕРНО ВЕРНО ВЕРНО
ИСТИНА ЛОЖЬ НЕИЗВЕСТНО
НЕИЗВЕСТНО ИСТИНА НЕИЗВЕСТНО НЕИЗВЕСТНО

При использовании более одного логического оператора в операторе SQL Server оценивает операторы ИЛИ после 9Оператор 0005 И . Однако вы можете использовать круглые скобки, чтобы изменить порядок оценки.

Примеры операторов SQL Server

OR

См. следующую таблицу production.roducts из примера базы данных.

A) Пример использования оператора

OR

В следующем примере выполняется поиск товаров, цена по прейскуранту которых меньше 200 или больше 6000:

 SELECT
    наименование товара,
    список цен
ОТ
    производство. продукция
ГДЕ
    list_price < 200
ИЛИ list_price > 6000
СОРТИРОВАТЬ ПО
    список цен;
  Язык кода: SQL (язык структурированных запросов) (sql)  

B) Пример использования нескольких операторов

OR

Следующий оператор находит продукты, идентификатор бренда которых равен 1, 2 или 4:

 SELECT
    наименование товара,
    brand_id
ОТ
    производство.продукция
ГДЕ
    идентификатор_бренда = 1
ИЛИ бренд_id = 2
ИЛИ бренд_id = 4
СОРТИРОВАТЬ ПО
    brand_id DESC;
  Язык кода: SQL (язык структурированных запросов) (sql)  

Вы можете заменить несколько операторов OR на Оператор IN , как показано в следующем запросе:

 SELECT
    наименование товара,
    brand_id
ОТ
    производство.продукция
ГДЕ
    brand_id IN (1, 2, 3)
СОРТИРОВАТЬ ПО
    brand_id DESC;
  Язык кода: SQL (язык структурированных запросов) (sql)  

C) Использование оператора

OR с оператором AND пример

Рассмотрим следующий пример:

 SELECT
    наименование товара,
    идентификатор_бренда,
    список цен
ОТ
    производство. продукция
ГДЕ
    идентификатор_бренда = 1
      ИЛИ бренд_id = 2
      И list_price > 500
СОРТИРОВАТЬ ПО
    brand_id DESC,
    список цен;  Язык кода: SQL (язык структурированных запросов) (sql)  

В этом примере мы использовали операторы ИЛИ и И . Как всегда, SQL Server сначала оценивал оператор AND . Таким образом, запрос возвратил продукты с идентификатором бренда 2 и прейскурантной ценой выше 500 или товары с идентификатором бренда 1.

Чтобы найти продукты с идентификатором бренда 1 или 2 и прейскурантной ценой выше 500, используйте круглые скобки, как показано в следующем запросе:

 ВЫБОР
    наименование товара,
    идентификатор_бренда,
    список цен
ОТ
    производство.продукция
ГДЕ
    (brand_id = 1 ИЛИ brand_id = 2)
     И list_price > 500
СОРТИРОВАТЬ ПО
    идентификатор_бренда;  Язык кода: SQL (язык структурированных запросов) (sql)  

В этом руководстве вы узнали, как использовать оператор SQL Server OR для формирования условия путем объединения двух логических выражений.

Оператор SQL ИЛИ и его практическое применение

Резюме : в этом руководстве вы узнаете, как использовать оператор SQL ИЛИ для объединения двух логических выражений.

Введение в оператор SQL OR

SQL OR — это логический оператор, который объединяет два логических выражения. Оператор SQL OR возвращает значение true или false в зависимости от результатов выражений.

Оператор ИЛИ обычно используется в предложении WHERE оператора SELECT , UPDATE или DELETE для формирования гибкого условия.

Ниже показан синтаксис оператора SQL ИЛИ:

 

ВЫБОР столбец1, столбец2, ... ОТ Таблица 1 ГДЕ выражение1 ИЛИ выражение2;

В следующей таблице показан результат оператора OR при сравнении значений true, false и NULL.

9
ИСТИНА ЛОЖЬ НОЛЬ
34 3 ВЕРНО ВЕРНО ВЕРНО ВЕРНО
НЕТ

Обратите внимание, что оператор ИЛИ всегда возвращает значение true, если одно из выражений истинно.

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

Обратите внимание, что функция короткого замыкания помогает системе базы данных экономить ресурсы ЦП, прерывая обработку оставшейся части логического выражения, как только она может определить результат. Для получения дополнительной информации о функции короткого замыкания ознакомьтесь с руководством по оператору SQL AND.

При использовании оператора ИЛИ с оператором И система базы данных оценивает оператор ИЛИ после оператора И. Это известно как правило приоритета. Однако вы можете использовать круглые скобки, чтобы изменить порядок оценки.

Примеры оператора SQL ИЛИ

Мы будем использовать таблицу сотрудников из примера базы данных для демонстрации оператора ИЛИ .

Следующий оператор находит всех сотрудников, которые присоединились к компании в 1997 или 1998.

 

ВЫБЕРИТЕ имя, фамилия, Дата приема на работу ОТ сотрудники ГДЕ ГОД (дата_найма) = 1997 ИЛИ ГОД (дата_найма) = 1998 СОРТИРОВАТЬ ПО имя, фамилия;

Попробуйте

Чтобы найти всех сотрудников, которые пришли в компанию в 1997 или 1997 году и работали в отделе с идентификатором 3, используйте операторы И и ИЛИ следующим образом:

 

6 имя, фамилия, Дата приема на работу, id_отдела ОТ сотрудники ГДЕ id_отдела = 3 И ( ГОД (дата_найма) = 1997 ИЛИ ГОД (наем_дата) = 1998 ) СОРТИРОВАТЬ ПО имя, фамилия;

Попробуйте

Если не использовать круглые скобки, запрос будет получать сотрудников, которые пришли в компанию в 1997 году и работали в отделе с идентификатором 3, или сотрудников, которые пришли в компанию в 1998 году, независимо от отдела.

Это связано с тем, что система базы данных оценивает оператор OR после оператора AND .