SQL IN оператор

Sql In Operator



„Тази публикация ще проучи как да използвате оператора IN в стандартен или ANSI SQL. Операторът IN ви позволява да проверите за еднаква стойност в даден набор от стойности.

Нека проучим как работи тази функция и как можем да я използваме.

SQL IN оператор

Следващият фрагмент показва синтаксиса за оператора IN.







търсена_стойност [ НЕ ] IN стойност_набор

стойност_набор:
{
( изразяване [ , ... ] )
| ( подзаявка )
| ОСВЕН АКО ( израз_масив )
}

Функцията приема следните параметри:



  1. search_value – това дефинира израз, който се сравнява с дадения набор от стойности.
  2. value_set – наборът от стойности, от които се сравнява search_value.
  3. подзаявка – описва подзаявка, която връща една колона. Ако не бъдат върнати стойности, наборът от стойности е празен.
  4. UNNEST(масив) – връща колона със стойности от дадена стойност на масива.

След това функцията връща булева стойност. Връща TRUE, ако в дадения набор съществува равна стойност, и FALSE, ако не е така.



Примери

Следващият пример показва как да използвате оператора IN с данни от колони. Да предположим, че имаме таблица с примерни данни, както е показано:





Можем да използваме оператора IN, за да изберем записите, ако държавата е MySQL или PostgreSQL.



ИЗБЕРЕТЕ
*
ОТ
БАЗИ ДАННИ
КЪДЕТО
ИМЕ НА СЪРВЪРА IN ( 'MySQL' , 'PostgreSQL' ) ;

Горната заявка трябва да показва съответстващите редове, както е показано:

Използвайки оператора IN, можем също да проверим дали съществува стойност в дадена колона. По-долу е показан пример:

ИЗБЕРЕТЕ
*
ОТ
БАЗИ ДАННИ д
КЪДЕТО
'MySQL' IN ( ИМЕ НА СЪРВЪРА ) ;

В този случай проверяваме дали стойността „MySQL“ съществува в колоната server_name. Резултатът е както е показано:

Добре е да имате предвид, че ако сте предоставили дублирани стойности с оператор IN. SQL ще отхвърли идентичните стойности и ще използва една от тях.

Заключение

В тази кратка публикация проучихме използването на оператора IN в стандартен/ANSI SQL. Операторът IN ви позволява да проверите дали дадена стойност съществува в набор от стойности.

Благодаря за четенето!!