namai - Išmanusis televizorius
1c, kur lygi vertei arba nuliui. Naudojant funkciją isnull()

27.06.2017

NULL, ISNULL() ir IS NULL 1C užklausose

Kas yra NULL

NULL užklausos rezultate reiškia, kad nėra reikšmės (tai nėra tuščia reikšmė, ne nulis, ne nulinė nuoroda).
Pavyzdžiui, sujungus užklausos lenteles, jungiantis naudojant ryšio laukus vienoje iš lentelių reikšmės nerasta. Arba prašyme nurodomas neegzistuojantis atributas (savybė).

NULL nėra tas pats, kas NULL!

Jei 1C užklausoje norite nustatyti pasirinkimą (sąlygą) su NULL patikrinimu, visada bus grąžinta tokia konstrukcija kaip „WHERE VT.Field1 = NULL“. MELAS! Norėdami patikrinti, turėtumėte naudoti specialų operatorių

1C užklausoje YRA NULL

Norėdami patikrinti NULL reikšmę (arba dirbti su reikšmėmis), turite naudoti šią konstrukciją „WHERE VT.Field1 IS NULL“ arba kitą pavyzdį, naudokite konstrukcijoje PASIRINKIMAS"PARANKA | KAI VT.Laukas 1 YRA NULL | TAD" Verta paminėti, kad funkcija patikrinti, ar laukas yra NULL, yra viena iš daugiausiai išteklių reikalaujančių 1C užklausų funkcija. Todėl, jei norite jį naudoti užklausos sąlygomis, pagalvokite, ar galima tokį čekį pakeisti vidinis sujungimas(užklausų sujungimo tipas, kai pasirinkime lieka tik įrašai, esantys abiejose lentelėse).

Funkcija ISNULL() 1C užklausoje

Funkcija ISNULL() leidžia pakeisti trūkstamą reikšmę užklausos lauke nurodyta reikšme (standartinė reikšmė, stub).
Pavyzdžiui, jei nėra informacijos apie prekės savikainą, nurodome ją lygią 0 (nulis) "SELECT | ISNULL(T.Price, 0) AS Price | FROM Remaining Goods AS T"

Išvada

Rašykite užklausas teisingai ir optimaliai. Nes blogas prašymas reiškia stabdžius ir šlykštų kodą)

Sveiki.
Tęsdami apie primityvius duomenų tipus, neseniai pažvelgėme į juos, o šiandien apie tai kalbėsime įveskite NULL.

NULL tipas yra literalas, kuriame gali būti tik viena reikšmė, reikšmė "NULL".
NULL – nelygu nulinei nuorodai, tarpui arba tipui neapibrėžta.

Naudojamas dirbant su duomenų baze (sujungiant lenteles), naudojamas trūkstamai reikšmei nustatyti dirbant su duomenų baze.
NULL reikšmę galima gauti priskiriant šią reikšmę kintamajam:
Kintamasis = NULL.

NULL tipo reikšmės susidaro dėl sujungimų, kai elementas iš vienos lentelės neturi atitinkamo elemento iš kitos. NULL tipo reikšmė turi specifinių savybių:
- lyginant NULL reikšmę su bet kuriuo kitu argumentu, visada gaunama false;

Norėdami nustatyti reikšmę NULL, naudokite konstrukciją IS NULL (yra NULL).
Norėdami konvertuoti NULL tipą, naudokite funkciją ISNULL (isNULL).

Norint iškirpti laukus, kuriuose yra NULL reikšmės dėl užklausos, naudojamos šios konstrukcijos: - is not NULL - not is NULL

Pavyzdžiai

NULL reikšmės tikrinimo pavyzdys

PASIRINKITE katalogą. Nomenklatūra. Vardas, katalogas. Nomenklatūra. PurchasingPrice WHERE katalogas. Nomenklatūra. Pirkimo kaina Taip NULL

Funkcijos ISNULL() pavyzdys
Grąžinama funkcijos ISNULL(): pirmojo parametro reikšmė, jei pirmame parametre nėra NULL reikšmės, kitu atveju antrojo parametro reikšmė. Antrasis parametras bus konvertuojamas į pirmojo parametro tipą, jei pirmojo parametro tipas yra eilutė arba skaičius.

// Gaukite sumą pagal kiekio lauką. Jei įrašų nėra, gaukite 0 SELECT ISNULL(SUM(kiekis), 0 ) AS Kiekis IŠ dokumento. Išlaidos Inc. Junginys

Pagarbiai 1C programuotojas.
Palikite savo komentarus, man įdomi jūsų nuomonė.

1C užklausų kalba yra vienas iš pagrindinių 7.7 ir 8 versijų skirtumų. Vienas iš svarbiausių dalykų mokantis 1C programavimo yra užklausos kalba. 1C 8.3 versijoje užklausos yra galingiausias ir efektyviausias įrankis duomenims gauti. Užklausos kalba leidžia patogiai gauti informaciją iš duomenų bazės.

Pati sintaksė labai primena klasikinį T-SQL, išskyrus tai, kad 1C, naudojant užklausos kalbą, duomenis galite gauti tik naudodami konstrukciją Select. Kalba taip pat palaiko sudėtingesnes konstrukcijas, pavyzdžiui, (užklausa užklausoje). 1C 8 užklausos gali būti parašytos ir kirilica, ir lotynų kalba.

Šiame straipsnyje pabandysiu pakalbėti apie pagrindinius raktinius žodžius 1C užklausos kalba:

  • pasirinkti
  • leidžiama
  • įvairių
  • išreikšti
  • Pirmas
  • pokyčiams
  • prasmė
  • vertės tipas (ir REFERENCE operatorius)
  • pasirinkimas
  • Grupuoti pagal
  • turintys
  • ISNULL
  • Taip NULL
  • jungtys - dešinė, kairė, vidinė, pilna.

Taip pat keletas mažų 1C kalbos gudrybių, kurias naudodami galite optimaliai sukurti užklausos tekstą.

Norėdami derinti užklausas 1C 8.2 sistemoje, pateikiamas specialus įrankis - užklausų konsolė. Aprašymą galite pamatyti ir atsisiųsti naudodami nuorodą -.

Pažvelkime į svarbiausius ir įdomiausius 1C užklausos kalbos operatorius.

PASIRINKTI

1C Enterprise 8 užklausos kalba bet kuri užklausa prasideda raktiniu žodžiu PASIRINKTI. 1C kalboje nėra UPDATE, DELETE, CREATE TABLE, INSERT konstrukcijų; šios manipuliacijos atliekamos objektų technologijoje. Jo tikslas yra tik skaityti duomenis.

Pavyzdžiui:

PASIRINKTI
Dabartinis katalogas.Pavadinimas
NUO
Directory.Nomenclature AS Dabartinis katalogas

Užklausa pateiks lentelę su elementų pavadinimais.

Šalia konstrukcijos PASIRINKTI galite rasti raktinių žodžių DĖL POKYČIŲ, LEIDŽIAMAS, ĮVAIRUS, PIRMAS

LEIDŽIAMAS— iš lentelės pasirenka tik tuos įrašus, į kuriuos dabartinis vartotojas turi teises.

ĮVAIRUS— reiškia, kad rezultate nebus pasikartojančių eilučių.

PASIRINKIMAS (ATVEJIS)

Labai dažnai šį dizainą programišiai neįvertina. Jo naudojimo pavyzdys:

Dabartinis katalogas.Pavadinimas,

KADA Dabartinis katalogas.Paslauga THEN

"Paslauga"

PABAIGA, KAIP PERŽIŪRĖTI Nomenklatūrą

Directory.Nomenclature AS Dabartinis katalogas

Pavyzdys pateiks teksto reikšmę lauke „Prekės tipas“ – „Produktas“ arba „Paslauga“.

KUR

1C užklausos kalbos dizainas, leidžiantis pasirinkti gautus duomenis. Atkreipkite dėmesį, kad sistema gauna visus duomenis iš serverio ir tik tada parenkama pagal šį parametrą.

PASIRINKTI
Katalogas.Vardas
NUO
Dabartinis katalogas. Nomenklatūra AS Dabartinis katalogas
WHERE CurrentDirectory.Service = TRUE

Pavyzdyje pasirenkame įrašus, kurių atributo „Paslauga“ reikšmė nustatyta į „True“. Šiame pavyzdyje galėtume išsiversti su tokia sąlyga:

"KUR YRA PASLAUGA"

Iš esmės mes pasirenkame eilutes, kuriose po raktinio žodžio esanti išraiška yra lygi „Tiesa“.

Išraiškose galite naudoti tiesiogines sąlygas:

WHERE kodas = "005215"

Sąlygose naudodami operatorių „VALUE()“, naudokite prieigą prie iš anksto nustatytų elementų ir išvardijimo 1C užklausoje:

WHERE prekės tipas = vertė (sąrašas. prekių tipai. produktas)

Laiko reikšmės gali būti nurodytos taip:

KUR gavimo data > DATETIME(2012,01,01):

Dažniausiai sąlygos nurodomos kaip parametrai, perduodami užklausai:

Gaukite 267 vaizdo įrašų pamokas 1C nemokamai:

WHERE NomenclatureGroup= &NomenclatureGroup

Atributo tipui gali būti nustatyta sąlyga, jei jis yra sudėtinio tipo:

Jei reikia apriboti pasirinkimą iš reikšmių sąrašo arba masyvo, galite atlikti šiuos veiksmus:

KUR yra kaupimo registras. Registratorius B (&Atrankos dokumentų sąrašas)

Būklė taip pat gali būti sudėtinga, susidedanti iš kelių sąlygų:

WHERE gavimo data > DATETIME(2012,01,01) AND NomenclatureGroup= &NomenclatureGroup AND NOT Service

GRUPUOTI PAGAL

1C 8.2 užklausos kalbos, naudojamos rezultatui sugrupuoti, dizainas.

Pavyzdžiui:

PASIRINKTI
Prekių ir paslaugų gavimas Prekės,
SUM (Prekių gavimasPaslaugų Prekės. Kiekis) AS Kiekis,
SUM (Prekių gavimasPaslaugųPrekių.Suma) AS Suma
NUO
Dokumentas. Prekių ir paslaugų gavimas Prekės KAIP Prekių ir paslaugų gavimas Prekės

GRUPUOTI PAGAL
Prekių gavimasPaslaugosPrekės.Prekės

Šioje užklausoje visi kvitai bus apibendrinti pagal sumą ir kiekį pagal prekes.

Be raktinio žodžio SUMA Galite naudoti kitas agregavimo funkcijas: KIEKIS, SKIRTINGŲJŲ SKAIČIUS, MAKSIMALUS, MINIMUMAS, VIDUTINIS.

TURIMAS

Dizainas, kuris dažnai pamirštamas, bet labai svarbus ir naudingas. Tai leidžia nurodyti pasirinkimą suminės funkcijos pavidalu, to negalima padaryti projektuojant KUR.

HAVING naudojimo 1C užklausoje pavyzdys:

PASIRINKTI
Prekių ir paslaugų gavimas Prekės,
SUM (Prekių gavimasPaslaugų Prekės. Kiekis) AS Kiekis,
SUM (Prekių gavimasPaslaugųPrekių.Suma) AS Suma
NUO
Dokumentas. Prekių ir paslaugų gavimas Prekės KAIP Prekių ir paslaugų gavimas Prekės

GRUPUOTI PAGAL
Prekių ir paslaugų gavimas Prekės.prekės

SUM (Prekių gavimasPaslaugųPrekių.Kiekis) > 5

Taigi atrinksime prekių, kurių atkeliavo daugiau nei 5 vnt., skaičių.

REIKŠMĖ ()

Pavyzdžiui:

WHERE Bank = vertė (Katalogas.Bankai.EmptyLink)

WHERE nomenklatūros tipas = reikšmė (katalogas. nomenklatūros tipai. produktas)

WHERE elemento tipas = reikšmė (sąrašas. elementų tipai. paslauga)

TYPE užklausoje

Duomenų tipą galima patikrinti naudojant TYPE() ir VALUETYPE() funkcijas arba loginį REFERENCE operatorių.

EXPRESS ()

„Express“ operatorius 1C užklausose naudojamas duomenų tipams konvertuoti.

Sintaksė: EXPRESS(<Выражение>KAIP<Тип значения>)

Naudodami jį galite konvertuoti eilučių reikšmes į datą arba nuorodines reikšmes į eilutės duomenis ir pan.

Praktikoje neriboto ilgio laukams konvertuoti labai dažnai naudojamas Express() operatorius, nes neriboto ilgio laukų negalima pasirinkti, sugrupuoti ir pan. Jei tokie laukai nekonvertuojami, gausite klaidą Negalite lyginti neriboto ilgio laukų ir nesuderinamų tipų laukų.

PASIRINKTI
ContactInformation.Object,
EXPRESS(ContactInfo.View AS ROW(150)) AS View
NUO
Informacijos registras Kontaktinė informacija KAIP Kontaktinė informacija

GRUPUOTI PAGAL
EXPRESS(ContactInfo.Representation AS ROW(150)),
Kontaktinė informacija.Objektas

ISNULL (ISNULL)

Gana naudinga 1C užklausos kalbos funkcija, kuri tikrina įrašo reikšmę ir ar ji lygi NULL, Tai leidžia jį pakeisti savo verte. Dažniausiai naudojamas gaunant virtualias likučių ir apyvartų lenteles, siekiant pasislėpti NULL ir padėkite aiškų 0 (nulis).

ISNULL(priešmėnesiniai mokesčiai.Taikoma FSS išmoka, 0)

Tokia 1C užklausos kalbos funkcija ISNULL grąžins nulį, jei nėra reikšmės, todėl bus išvengta klaidos.

PRISIJUNK

Yra 4 jungčių tipai: KAIRĖ, TEISINGAI, PILNAS, VIDINIS.

KAIRĖS ir DEŠINĖS PRIJUNGIMAS

Sujungimai naudojami susieti dvi lenteles pagal konkrečias sąlygas. Funkcija kada KAIRĖ PRISIJUNGTI yra tai, kad imame visą pirmąją nurodytą lentelę ir sąlyginai susiejame antrąją lentelę. Antrosios lentelės laukai, kurių negalima susieti su sąlyga, užpildomi reikšme NULL.

Kairiojo prisijungimo 1C užklausoje pavyzdys:

Jis grąžins visą lentelę ir užpildys lauką „Bankas“ tik tose vietose, kur tenkinama sąlyga „Counterparties.Name = Banks.Name“. Jei sąlyga neįvykdyta, laukas Bankas bus nustatytas į NULL.

RIGHT JOIN 1C 8.3 kalba absoliučiai panašus KAIRĖS jungtis, išskyrus vieną skirtumą: in PRIJUNGIMO TEISĖ„Pagrindinė“ lentelė yra antra, o ne pirmoji.

PILNAS PRIJUNGIMAS

PILNAS PRIJUNGIMAS skiriasi nuo kairės ir dešinės tuo, kad rodo visus įrašus iš dviejų lentelių ir jungia tik tuos, kuriuos gali sujungti pagal sąlygą.

Pavyzdžiui:

PILNAS PRIJUNGIMAS
Katalogas.Bankai KAIP Bankai

BY

Užklausos kalba abi lenteles pateiks visiškai, tik jei bus įvykdyta sąlyga Sujungti įrašus. Skirtingai nuo kairiojo / dešiniojo sujungimo, NULL gali būti rodomas dviejuose laukuose.

VIDINIS PRISIJUNGIMAS

VIDINIS PRISIJUNGIMAS skiriasi nuo pilno tuo, kad rodo tik tuos įrašus, kuriuos būtų galima prijungti pagal tam tikrą sąlygą.

Pavyzdžiui:

NUO
Katalogas Sandorio šalys AS Klientai

VIDINIS PRISIJUNGIMAS
Katalogas.Bankai KAIP Bankai

BY
Klientai.Vardas = Bankai.Vardas

Ši užklausa pateiks tik tas eilutes, kuriose bankas ir sandorio šalis turi tą patį pavadinimą.

Išvada

Tai tik nedidelė 1C 8 užklausų kalbos sintaksės dalis; ateityje pasistengsiu išsamiau apsvarstyti kai kuriuos dalykus, parodyti ir dar daugiau!

NULL– trūkstamų vertybių.
Negalima painioti su nuline verte! NULL nėra skaičius, nelygu tarpas, tuščia nuoroda arba neapibrėžta.

NULL yra tipą formuojanti reikšmė, t.y. yra tipas NULL ir viena šio tipo reikšmė.

NULL reikšmės užklausoje rodomos šiais atvejais:
a) Išorinis sujungimas, kuriame atitinkamo įrašo nerasta kitoje lentelėje (su kairiuoju - antroje lentelėje, su dešiniuoju - pirmoje, su pilnu - abiejose)
b) Prieiga prie grupės elementų informacijos ir atvirkščiai.
c) NULL pasirinkimo laukų sąraše (SELECT)
d) Prieiga prie informacijos apie neveikiančią nuorodą

YRA NULL naudojamas operatoriuje SELECT (tarsi tikrinant, ar reikšmė tuščia (reikšmė NULL)):
Kodas 1C v 8.x
PASIRINKIMAS
KAI reikšmė NULL, TAI ResultIfNULL
KITA Reikšmė
GALAS

kitas pavyzdys:
Kodas 1C v 8.x SELECT

PASIRINKIMAS, KAI Apskaitos vienetų likutis.Likęs kiekis yra NULIS, TAI 0
KITAIP Likusios nomenklatūros apskaita. Likęs kiekis kaip likęs kiekis
NUO



KUR

Funkcija ISNULL(reikšmė, ResultIfNULL) grąžina pirmojo parametro reikšmę, jei ji nėra NULL, ir antrojo parametro reikšmę, jei ji nėra
Sutraukta SELECT...END, bet pageidaujama ISNULL.
Kodas 1C v 8.x
PASIRINKTI
ISNULL(katalogas.nomenklatūra.straipsnis, "---") AS straipsnis,
Katalogas.Nomenklatūra.Pateikimas AS nomenklatūra

kitas pavyzdys:
Kodas 1C v 8.x
PASIRINKTI
Nomenklatūros žinynas. Pavadinimas,
ISNULL(AccountingItemRemaining.QuantityRemaining, 0) AS Likęs kiekis
NUO
Directory.Nomenclature AS KatalogasNomenklatūros
KAIRIS RYŠYS Registruok sankaupas Prekių apskaita Likutai AS Prekių apskaita Balansai
Programinės įrangos elementas AccountingRemains.Nomenclature = Nomenklatūros katalogas.Nuoroda
KUR
Nomenklatūros katalogas. ThisGroup = FALSE
Šiame pavyzdyje gaunami visi prekių katalogo elementai, po kurių kiekvienos prekės einamieji likučiai gaunami iš kaupimo registro. Nes prekei, kuriai nėra likučių, virtualioji likučių lentelė nepateiks įrašo, tada sujungus lauką „Prekės apskaita.Likęs kiekis“ prekės, kuriai yra, bus NULL reikšmės. likučių nebuvo. Norėdami užtikrinti, kad vietoj NULL reikšmės užklausos rezultate būtų reikšmė 0, naudojome funkciją ISNULL(), kuri atliks norimą pakeitimą.

ISNULL skiriasi nuo CHOICE dėl šių priežasčių:
a) Jei ISNULL, užklausa yra geriau skaitoma (paprastesnė)
b) Jei ISNULL, jei pažymėta sudėtinga išraiška, ji veikia greičiau, nes apskaičiuojama vieną kartą
c) Jei ISNULL, pakaitinė išraiška konvertuojama į testuojamos išraiškos tipą, jei jos tipas yra String (ilgis) arba skaičius (bitų gylis).

Negalite patikrinti NULL verčių naudodami įprastą lygybę, nes SQL naudoja trijų reikšmių logiką - True, False, NULL, o tokio palyginimo rezultatas bus NEŽINOMA, o tai 1C 8.0 yra panašus į FALSE.
NULL<>0, todėl kairiųjų išorinių sujungimų žr. Nomenklatūra su likučių lentelėmis, kainomis, Sandorio šalys su tarpusavio atsiskaitymais, jei tokių įrašų nebus, bus NULL, kuris nėra lygus 0. Geriausias sprendimas yra ISNULL

Dėmesio! Tai įvadinė pamokos versija, kurios medžiaga gali būti neišsami.

Prisijunkite prie svetainės kaip studentas

Prisijunkite kaip mokinys, kad galėtumėte pasiekti mokyklos medžiagą

Užklausos kalba 1C 8.3 pradedantiesiems programuotojams: funkcijos ir operatoriai, skirti dirbti su tipais (VALUE TYPE, TYPE, REFERENCE, ISNULL, EXPRESS)

Prisiminkime, kad kiekvienas katalogo, dokumento ar bet kurio kito taikomosios programos objekto atributas (ypatybė, laukas) turi savo tipą. Ir mes galime pažvelgti į šį tipą konfigūratoriuje:

Užklausos kalboje yra visa klasė funkcijų ir operatorių, skirtų darbui su detalių tipais. Pažiūrėkime į juos.

VALUE TYPE funkcija

Ši funkcija paima vieną parametrą (reikšmę) ir grąžina jo tipą. Paveikslėlyje aprašytiems rekvizitai (aukščiau) Skonis katalogas Maistas bus grąžinta:

Dabar pažiūrėkime į rekvizitus Išskirtinis bruožas kataloge Miestai:

Matote, kad šis rekvizitas gali būti vienas iš kelių tipų: Linija, Katalogas.Skoniai, Katalogas.Spalvos. Tokio tipo detalės vadinamos KOMPOZITINE.

Jei bandysime užpildyti tokios detalės reikšmę režimu 1C:Enterprise, sistema paklaus, kokio tipo vertė bus įvesta:

Ir tik po mūsų pasirinkimo galėsime įvesti pasirinkto tipo reikšmę.

Taigi, to paties tipo katalogo elementai ( Katalogas.Miestai) galės saugoti tame pačiame atribute ( Išskirtinis bruožas) skirtingų tipų vertės (stygos, spalvos arba skoniai).

Tuo galite įsitikinti patys spustelėję katalogo elementus Miestai 1C: įmonės režimu. Skaitote bandomąją pamokos versiją, yra visos pamokos.

Čia skiriamoji požymio reikšmė yra katalogo elementas Skoniai:

Štai eilutė:

Ir čia apskritai yra žinyno elementas Spalvos:

Tai yra galimybės, kurias mums atveria sudėtinis duomenų tipas!

Įdomu, kaip elgsis funkcija TIPO VERTĖS ant butaforijos Išskirtinis elementas, turintys sudėtinį duomenų tipą:

Tai jau labai įdomu. Pažvelkime į kiekvieną eilutę atskirai.

Elemento Rusija skiriamojo požymio vertės tipas yra lygus NULL. Su tokiu tipu susiduriame pirmą kartą. Šio tipo reikšmės naudojamos tik trūkstamai vertei nustatyti dirbant su duomenų baze.

Tai tiesa, nes Rusijos elementas yra grupė, o ne įprastas katalogo elementas Miestai, todėl jis neturi lauko Išskirtinis bruožas. Ir trūkstamos reikšmės tipas, kaip skaitėme aukščiau, visada yra lygus NULL.

Permės skiriamojo požymio vertės tipas yra lygus Skoniai. Tai tiesa, nes į duomenų bazę Permės miestui įvesto skiriamojo požymio reikšmė yra nuoroda į katalogo elementą Skoniai.

Krasnojarskui atributo tipas yra lygus Spalvos, nes duomenų bazėje pasirinkta reikšmė yra nuoroda į katalogo elementą Spalvos.

Voronežui atributo tipas yra lygus Linija, nes į duomenų bazę įvesta reikšmė yra įprasta eilutė.

Indija vėl yra grupė, todėl nėra jokios reikšmės. Ir trūkstamos reikšmės tipas, kaip prisimename, yra lygus NULL.

Štai toks dalykas. Jei einate į katalogo elementą Miestai su vardu San Paulas, tada pamatysite tą lauką Išskirtinis bruožas visiškai neužpildytas. Jis tuščias. A visi tušti sudėtinio tipo laukai turi ypatingą reikšmę NEAPIBRĖŽTAS .

SU NEAPIBRĖŽTAS taip pat susiduriame pirmą kartą. Reikšmė NEAPIBRĖŽTAS naudojamas, kai reikia naudoti tuščią reikšmę, kuri nepriklauso jokiam kitam tipui. Būtent tokia mūsų situacija. Ir vertės tipas NEAPIBRĖŽTAS, kaip tikriausiai jau atspėjote, yra lygus NULL.

Funkcija TYPE

Tam reikia tik vieno parametro - primityvaus tipo pavadinimo ( LINIJA, NUMERIS, DATA, BOLIO) arba lentelės, kurios nuorodos tipą norite gauti, pavadinimą.

Šios konstrukcijos rezultatas bus tipo tipo reikšmė nurodytam tipui.

Skamba neaiškiai, ar ne?

Pažvelkime į šio dizaino pritaikymą ir viskas iškart atsidurs savo vietose.

Tarkime, kad turime pasirinkti visus katalogo įrašus Miestai, kurie turi sudėtinius rekvizitus Išskirtinis bruožas turi tipo reikšmę LINIJA:

Dabar pažymėkime visus įrašus, turinčius atributų reikšmes Išskirtinis bruožas yra nuorodos į katalogo elementus Spalvos(lentelė Katalogas.Spalvos):

Atsitraukti

Kaip prisimenate, kai kurie katalogo elementai Miestai neturi butaforijos Išskirtinis bruožas. Funkcija TIPO VERTĖS tokiems elementams ji gamina NULL.

Kaip galite pasirinkti tokius elementus užklausoje? Tam numatytas specialus loginis operatorius YRA NULL(nepainioti su funkcija ISNULL, kurią apžvelgsime toliau). Skaitote bandomąją pamokos versiją, yra visos pamokos.

Štai jo naudojimo pavyzdys:

Puiku. Bet ar pastebėjote, kad nėra San Paulo, butaforijos vertės tipo elemento Išskirtinis bruožas kurį taip pat išdavė NULL. Kodėl taip atsitiko?

Bet reikalas tas, kad situacija grupėms (Rusija, Indija, Brazilija), kurioms pildant detales Išskirtinis bruožas iš principo neįmanoma, nes jie jo visai neturi, skiriasi nuo situacijos San Paulo elementui, kuriam galima užpildyti rekvizitus, bet jis tiesiog neužpildytas ir prilygsta, kaip prisimename, ypatinga vertybė NEAPIBRĖŽTAS.

Norėdami pasirinkti visus reikiamus įrašus Išskirtinis bruožas esama, bet neužpildyta, turėtų būti naudojama kita konstrukcija:

Tačiau palyginimas su UNEFINED, siekiant nustatyti tuščius (neužpildytus) atributus, veiks tik sudėtiniams tipams.

Beje, loginis operatorius IS NULL turi neigimo formą, kuri atrodo taip:

Loginis operatorius LINK

Pavyzdžiui, pasirinkime iš katalogo Miestai tik tie įrašai, kurie turi sudėtinio atributo reikšmę Išskirtinis bruožas yra nuoroda į katalogo elementą Skoniai:

Kaip prisimenate, tą pačią problemą galime išspręsti naudodami TIPO VERTĖS Ir TIPAS:

Funkcija ISNULL

Funkcija skirta pakeisti reikšmę NULLį kitą prasmę.

Mes prisimename, kad prasmė NULL grąžinama, jei prašomo atributo (lauko, ypatybės) nėra.

Pavyzdžiui, rekvizitai Išskirtinis bruožas katalogų grupėms Miestai:

Funkcija ISNULL padės mums išvesti kitokią reikšmę, jei ši vertė yra lygi NULL. Skaitote bandomąją pamokos versiją, yra visos pamokos. Tebūnie šiuo atveju eilutė "Tokio rekvizito nėra!":

Pasirodo, jei pirmasis funkcijos parametras ISNULL nėra lygus NULL, tada jis grįžta. Jei jis yra NULL, tada grąžinamas antrasis parametras.

EXPRESS funkcija

Ši funkcija skirta tik laukams, kurių tipas yra sudėtinis. Puikus tokios srities pavyzdys yra nuosavybė Išskirtinis bruožas katalogo elementams Miestai.

Kaip prisimename, sudėtiniai laukai gali būti vienas iš kelių tipų, nurodytų konfigūravimo priemonėje.

Laukui Išskirtinis bruožas tokie galiojantys tipai yra LINIJA, Katalogas.Spalvos Ir Katalogas.Skoniai.

Kartais tampa būtina sudėtinio lauko reikšmes perkelti į konkretų tipą.

Išvardykime visas lauko reikšmes Išskirtinis bruožas rinkti tekstą Nuoroda.Spalvos:

Dėl to visos elementų vertės, kurios buvo tipo Katalogas. Spalvos, liko užpildyti ir buvo konvertuoti į nurodytą tipą. Visos kitų tipų reikšmės ( LINIJA, Katalogas.Skoniai) dabar yra lygūs NULL. Tai yra tipo liejimo naudojant funkciją ypatumas EXPRESS.

Tipą galite perkelti į primityvų tipą ( BOLIO, NUMERIS, LINIJA, DATA) arba į atskaitos tipą. Skaitote bandomąją pamokos versiją, yra visos pamokos. Tačiau tipas, kuriam atliekama liejimas, turi būti įtrauktas į šio sudėtinio lauko tipų sąrašą, kitaip sistema išmes klaidą.

Atlikite testą

Pradėti testą

1. Pasirinkite teisingiausią teiginį

2. Iškviečiamos detalės, kurios gali turėti vienos iš kelių tipų reikšmes

3. Norėdami nustatyti atributo vertės tipą, naudokite funkciją

4. Tuščios sudėtinio tipo detalės yra svarbios



 


Skaityti:



Loginės algebros funkcijų superpozicija Monotoninės Būlio funkcijos

Loginės algebros funkcijų superpozicija Monotoninės Būlio funkcijos

Atitiktis G tarp aibių A ir B vadinama poaibiu. Jei , tada sakoma, kad b atitinka a. Daug visko, kas aktualu...

Kas yra informacinė sistema?

Kas yra informacinė sistema?

Valstybės portalai, ESIA svetainės. Vieninga identifikavimo ir autentifikavimo sistema – esia.gosuslugi.ru EPGU. Vieningas viešųjų paslaugų portalas...

Perėjimas nuo loginės išraiškos prie loginės grandinės ir atvirkščiai

Perėjimas nuo loginės išraiškos prie loginės grandinės ir atvirkščiai

Laboratorinis darbas Nr.4. Loginių elementų grandinės realizavimas. Loginių grandinių konstravimas. Teorinė dalis. Apdorojimas grindžiamas...

Nižnij Novgorodo Rusijos pašto gėda

Nižnij Novgorodo Rusijos pašto gėda

Pristačius naują operacinę sistemą EAS OPS, kainavusią 890 milijonų rublių, klientų aptarnavimo laikas regiono pašto skyriuose...

tiekimo vaizdas RSS