При съставянето на SQL-queries,Когато изберете данни, трябва да сравните стойностите на няколко колони и да изведете една от тях, която съдържа данни (не празни). Този проблем е напълно разрешен от израза "Коалес". В тази статия ще намерите пълно описание на израза Coalesce sql, описание на характеристиките на употребата, както и примери.
Изход на стойности, които не са нула, използвайки Coalesce. Удобства
Помислете за характеристиките на Sql Coalesce:
- Тя позволява да се уточни на произволен брой аргументи (за разлика от Isnull / NVL / Nvl2, в които броят на аргументи е ограничена).
- Може да приеме подчинените като аргумент.
- Връща резултата равен на първата различна от Null или Null, ако не е намерена стойност, различна от Null.
- Sql Coalesce може да се използва в клаузата за избор, за да изберете празна стойност, а също и в Къде да укажете, че набор от колони с празни стойности не е разрешен (/ разрешен).
- Този израз е еквивалентен на изразаСлучай, който проверява последователно всеки аргумент на условието Когато argument1 не е null след това argument1. Всъщност, Coalesce е "пряк път", предназначен за лесна употреба, а в много оптимизатори на заявки за DBMS пренаписва израза Coalesce на Case.
- Характеристиките на Sql Coalesce се предлагат във всички водещи системи за управление на релационни бази данни.
Синтаксис Коалес
Всеки, който е използвал Coalesce поне веднъжкомпилиране на sql-queries, знае, че синтаксисът на този израз е изключително прост. Достатъчно е да посочите в скоби аргументи, проверени на Null, разделени със запетаи. Ако приемем, че аргументите имат имената arg1, arg2, ... argN, тогава синтаксисът на Coalesce ще изглежда така:
Коалес (arg1, arg2, ... argN).
Нека подготвим няколко таблици за изучаване на механизма на този израз.
Подготовка на маси
За да се разбере по-добре обединявам се описание на SQL, да създаде база данни са две таблици от данни, които дават информация за недвижими имоти.
Първата областна таблица трябва да съдържа имената на обектите за недвижими имоти и тяхната област. Районът може да бъде прецизиран (area_yt) или деклариран (area_decl).
идентификатор | object_name | area_yt | area_decl |
1 | Сграда 1 | 116,2 | 114 |
2 | Незавършена конструктивна цел 1 | 568 | |
3 | Стая 1 | 64,7 | |
4 | Стая 2 | 34,2 | |
5 | Парцел 1 | 112 | 111,6 |
6 | Механизъм 1 | ||
7 | Стаи 3 | 27,9 | |
8 | Строителство 2 | 37,2 | 36,4 |
9 | Сграда 2 |
Втората таблица е основна характеристикасъдържа информация за основната характеристика на имота - Разширение, Дълбочина, Площ, Обхват, Височина.
идентификатор | object_name | разширение | дълбочина | област | обхват | височина |
1 | Сграда 1 | 892,4 | 30 | |||
2 | Сграда 2 | 48 | ||||
3 | Механизъм 1 | 164,7 | ||||
4 | Парцел 1 | |||||
5 | Стая 1 | 23,6 | ||||
6 | Стая 2 | 34,7 | ||||
7 | Стаи 3 | 19,8 |
Разгледахме синтаксиса на Coalesce sql, описанието, характеристиките на употребата и продължихме директно към примерите.
Примери за използване
Синтаксисът на израза Коалес е много прост,но е важно да запомните, че резултатът от командата ще бъде FIRST не празна стойност, намерена от списъка с аргументи. Тази забележка е много важна, така че аргументите в израза трябва да бъдат поставени в ред на важност. Най-лесният начин да разберете принципа на таблицата на района. Направете заявка, която избира името на имота, както и стойността на района:
SELECT Area.id, Area.object_name, обединяване (Area.area_yt, Area.area_decl) От района |
И да получите резултата:
идентификатор | object_name | сливам |
1 | Сграда 1 | 116,2 |
2 | Незавършена конструктивна цел 1 | 568 |
3 | Стая 1 | 64,7 |
4 | Стая 2 | 34,2 |
5 | Парцел 1 | 112 |
6 | Механизъм 1 | |
7 | Стаи 3 | 27,9 |
8 | Строителство 2 | 37,2 |
9 | Сграда 2 |
За обектите "Сграда 1", "Парцел 1" и"Конструкция 2" беше изпълнена и с двете стойности на района, но в приоритет бе рафинирана площта, защото първо я посочихме в списъка с аргументи. Изразът "Коалес" намери първата не празна стойност и я изведе, спирайки по-нататъшното преглеждане на аргументите. Това конструиране на заявката е правилно, защото определената област е по-специфична от декларираната. Ако посочим областта, обявена за първи аргумент, тогава ако това поле на таблицата е пълна, то ще бъде приоритетно.
В допълнение към използването в Select, много честоизразът Coalesce се прилага с клаузата "Къде". Той ви позволява да изрежете от резултата онези редове, в които списъкът с полета е празен (или обратно, включете само тези стойности във резултата, където списъкът с полета не е попълнен). Тази ситуация е навсякъде: например, по време на регистрирането на нов служител, в базата данни е въведена само основна информация за служителя, а подробната информация е оставена "за по-късно". Постепенно "пропуските" се издигат - преди проверката или при изпращане на служителя на почивка / бизнес пътуване / отпуск по болест.
Изберете от таблицата основните характеристики на обектите за недвижими имоти, които нямат нито една от стойностите на характеристиките:
SELECT id, object_name От Basic_characteristic Където се обединява (разширение, дълбочина, площ, обхват, височина) е нула |
За тази заявка има едно съвпадение в таблицата - обект "Парцел 1", в който всички полета с характеристики са празни:
идентификатор | object_name |
4 | Парцел 1 |
Надяваме се, че подробното описание на Coalesce sql ви помогна да разберете всички характеристики на използването на този израз, както и да се справите с важни нюанси.