Помозите развоју веб локације, дељење чланка са пријатељима!

Увод у СКЛ ЦОАЛЕСЦЕ

ЦОАЛЕСЦЕ је унапред дефинисана уграђена функција језика структурираних упита (СКЛ) која се користи за руковање НУЛЛ вредностима у записима података. Он процењује скуп или листу улазних параметара на секвенцијални начин и враћа прве вредности које нису НУЛЛ међу њима. Функција ЦОАЛЕСЦЕ се завршава када наиђе на прву вредност која није НУЛЛ и врати је. Ако су сви аргументи на листи за унос НУЛЛ вредности, онда ће функција вратити НУЛЛ.

То је генеричка функција која је подржана у свим базама података као што су МИСКЛ, СКЛ Сервер (од 2008.), Азуре СКЛ база података, ПостгреСКЛ, Орацле, итд.

Неке употребе СКЛ ЦОАЛЕСЦЕ функције су:

  • Управљање НУЛЛ вредностима
  • Покретање два или више упита као један упит
  • Пречица алтернатива дугим и дуготрајним ЦАСЕ изјавама

Синтакса и параметри

Основна синтакса за коришћење ЦОАЛЕСЦЕ функције у СКЛ-у је следећа:

СЕЛЕЦТ ЦОАЛЕСЦЕ(вредност_1, вредност_2, вредност_3, вредност_4,… вредност_н);

Параметри поменути у горњој синтакси су:

ЦОАЛЕСЦЕ() : СКЛ функција која враћа прву вредност која није нулта са листе уноса.

валуе_1, валуе_2,валуе_3,валуе_4,… валуе_н : Улазне вредности које се морају проценити.

Пошто је ЦОАЛЕСЦЕ функција израз сама по себи, може се користити у било којој изјави или клаузули која прихвата изразе као што су СЕЛЕЦТ, ВХЕРЕ и ХАВИНГ.

ЦОАЛЕСЦЕ функција се може сматрати специјализованом верзијом наредбе ЦАСЕ у СКЛ-у.

Синтакса наредбе ЦАСЕ која приказује функцију ЦОАЛЕСЦЕ функције је следећа:

СЕЛЕЦТ цолумн_наме1,цолумн_наме2, цолумн_наме3,
СЛУЧАЈ
КАДА цолумн_наме1 НИЈЕ НУЛЛ ОНДА цолумн_наме1
КАДА цолумн_наме2 НИЈЕ НУЛЛ ОНДА цолумн_наме2 ЕЛСЕ НУЛЛ
ЕНД као 'цасе_наме'
ФРОМ табле_наме;

Параметри поменути у горњој синтакси су:

Цолумн_наме1, цолумн_наме2: Вредности колона које морају да се споје, тј. ако резултати било које од ових колона резултирају вредностима НУЛЛ, тада ће бити враћена прва вредност која није НУЛЛ међу њима. Али ако оба процене на НУЛЛ, онда ће ЦАСЕ вратити НУЛЛ.

У наставку ћемо детаљно расправљати о горе поменутој функцији ЦОАЛЕСЦЕ.

Да бисмо боље разумели концепт, искористићемо помоћ табеле запослених (ово садржи личне податке свих запослених).

Подаци у табели „запослени” су следећи:

Примери СКЛ ЦОАЛЕСЦЕ

Ево неколико примера да боље разумете СКЛ ЦОАЛЕСЦЕ.

Пример 1

СКЛ упит за илустрацију употребе једноставне ЦОАЛЕСЦЕ функције.

Шифра:

СЕЛЕЦТ ЦОАЛЕСЦЕ(НУЛЛ, НУЛЛ, НУЛЛ, 'ЕдуЦБА', НУЛЛ, НУЛЛ);

Излаз:

У овом примеру, можемо видети да функција ЦОАЛЕСЦЕ бира прву вредност која није НУЛЛ, наилази и затим завршава.

Пример 2

СКЛ упит за проналажење првих вредности које нису нулте из имена и презимена запосленог.

Шифра:

ИЗБЕРИ ИД запосленог,име, презиме,
ЦОАЛЕСЦЕ(име,презиме) као 'прво не нулто име'
ОД запослених;

Излаз:

У овом примеру се враћа први који није НУЛЛ.

Пример 3

СКЛ упит за илустрацију функције ЦОАЛЕСЦЕ као посебан случај ЦАСЕ.

Шифра:

ИЗБЕРИ ИД запосленог,име, презиме,
СЛУЧАЈ
КАДА име НИЈЕ НУЛЛ ОНДА име
КАДА презиме НИЈЕ НУЛЛ ОНДА презиме ЕЛСЕ НУЛЛ
ЕНД као 'прва вредност која није нулта'
ОД запослених;

Излаз:

Упоредите резултате овог упита и резултата упита у трећем примеру. Видимо да оба дају исти резултат. То је зато што се функција ЦОАЛЕСЦЕ може сматрати посебним случајем ЦАСЕ.

Пример 4

СКЛ упит за илустрацију употребе функције ЦОАЛЕСЦЕ на вредностима са различитим типовима података.

Шифра:

ИЗБЕРИ ИД запосленог,име, презиме,
ЦОАЛЕСЦЕ(ид запосленог,име,презиме) као 'прво не нулто име'
ОД запослених;

Излаз:

У горњем примеру, можемо видети да ИД запосленог није могао да буде повезан са вредностима података о имену и презимену јер имају различите типове података.

Да бисмо решили овај проблем, можемо променити тип података запосленог користећи функцију ЦОНВЕРТ као што је приказано испод.

Шифра:

ИЗБЕРИ ИД запосленог,име, презиме,
ЦОАЛЕСЦЕ(ЦОНВЕРТ(варцхар(50),емплоиееид),име,презиме) као 'прве вредности које нису нулте'
ОД запослених;

Излаз:

Пример 5

Сложен СКЛ упит за илустрацију употребе ЦОАЛЕСЦЕ функције.

Претпоставимо да желимо да знамо плате свих запослених у фирми. Али у табели запослених можемо видети да плате свих запослених нису поменуте. Међутим, помињу се сатнице и провизије запослених у којима недостају поља за плате. То можемо искористити да упоредимо плате запослених на следећи начин.

Шифра:

СЕЛЕЦТ ЦОАЛЕСЦЕ(ЦОНВЕРТ(варцхар(50),емплоиееид),име,презиме) као 'Идентификатор запосленог',
ЦОАЛЕСЦЕ(плата,сат830 + ЦОАЛЕСЦЕ(провизија,0))као 'Компензација'
ОД запослених
ОРДЕР БИ 2 ДЕСЦ;

Излаз:

Користећи прву функцију ЦОАЛЕСЦЕ, покушали смо да идентификујемо запосленог тако што смо спојили ид запосленог, име и презиме заједно, а затим користећи другу функцију ЦОАЛЕСЦЕ, покушали смо да изаберемо плату или обрачунату накнаду.

Закључак

СКЛ ЦОАЛЕСЦЕ функција је уграђена функција у базама података као што су СКЛ Сервер, Азуре, итд. која враћа прву вредност која није НУЛЛ из улазне листе аргумената. Веома је користан у руковању нултим вредностима и служи као брза и лака алтернатива СКЛ ЦАСЕ изјавама.

Помозите развоју веб локације, дељење чланка са пријатељима!