Dzwon.

Są ci, którzy przeczytali tę wiadomość przed tobą.
Subskrybuj odbieranie artykułów świeżych.
E-mail
Nazwa
Nazwisko
Jak chcesz przeczytać dzwonek
Bez spamu

Cześć.
Ciąg dalszy O. typy prymitywne Dane, więc niedawno rozpatrywane, a dzisiaj porozmawiamy o wpisz null..

Typ NULL jest dosłownie, w którym tylko jedna wartość ma być "null".
NULL - nie jest równy pustym ogniwo, przestrzeń lub rodzaj jest niepewna.

Jest używany podczas pracy z bazą danych (przy podłączeniu tabel), używany do określenia brakującej wartości podczas pracy z bazą danych.
Wartość typu NULL można uzyskać, przypisując zmienną tę wartość:
Zmienna \u003d null.

Wartości zerowe są utworzone w wyniku połączeń, gdy element z kondycji z jednej tabeli nie jest odpowiednim elementem od innego. Wartość null Mam określone funkcje:
- porównanie wartości null z innym argumentem zawsze zwraca kłamstwo;

Aby określić wartość NULL wykorzystuje projekt Jest null (jest null).
Dla funkcji konwersji typu NULL Istnieje (ISNULL).

Aby odciąć pola zawierające wartości zerowe, w wyniku zapytania wykorzystywane są następujące struktury: - nie jest null - nie jest null

Przykłady.

Przykładowa wartość weryfikacyjna na NULL

Wybierz książkę referencyjną. Nomenklatura. Nazwa, książka referencyjna. Nomenklatura. Zamówienia, gdzie książka referencyjna. Nomenklatura. Zamówienia jest null.

Przykład funkcji isnull ()
Wartość zwrotu funkcji isnull (): wartość pierwszego parametru, jeśli pierwszy parametr nie zawiera wartości zerowej, w przeciwnym razie wartość drugiego parametru. Drugi parametr zostanie przekonwertowany na typ pierwszego parametru, jeśli typ pierwszego parametru jest ciągiem lub liczbą.

// Uzyskaj ilość według numeru pola. W przypadku, gdy nie ma wpisów, zdobądź 0Wybierz Hasnull (sum (ilość), 0) jako wiele dokumentów. Oakn. Struktura

Pozdrawiam programista 1C.
Zostaw swój komentarz, zastanawiam się twoją opinię.

Null to nic poza wartością. Wiele mylisz go z wartością numeru "0" numeru, pustego odniesienia do dowolnego obiektu lub pustego ciągu. Ze względu na to nieporozumienie jest wiele błędów.

Wartość NULL pojawi się, jeśli wniosek jest odwołanie się do nieistniejącego pola, mienia lub linku do bitów.

Na podstawie SQL, który nie pozwala sprawdzić wartość NULL w konwencjonalnej równości. Poniżej znajdują się dwie metody sprawdzania NULL w 1C 8.3.

Funkcja języka Query 1C 8.3 ISNULL () ma dwa parametry wejściowe:

  • weryfikowalne wyrażenie;
  • wyrażenie wymiany.

Jeśli sprawdzona wartość ma wartość NULL, ta funkcja zwróci wartość ekspresji wymiany. Jeśli wartość różni się od NULL, weryfikowalne wyrażenie powróci.

Przykład jest uważany za poniższy. Wybiera wszystkie pozycje nomenklatury części tabeli towarów z dokumentu "Przybycie towarów i usług". Z pomocą lewego połączenia, każda nomenklatura ma wpływ najnowszą cenę z informacji o wartościach nomenklatury ".

W tym przypadku taka sytuacja może wystąpić, że dla każdej pozycji może być po prostu cena rejestru. W takim przypadku funkcja isnull powróci do nas znanego zera. Jeśli nie korzysta, a następnie próbując wyprodukować operacje arytmetyczne na polu "Cena" z wartością NULL, otrzymamy błąd.

WYBIERAĆ

Istnieje isNull (ceny. Cena, 0) jako up-to -ilence
Z



GDZIE

W operatorze wyboru jest NULL

Analogiem funkcji ISNULL () jest "Jest null", który jest używany w operatorze wyboru i sprawdza, czy zerowy jest. "W tej sprawie implikuje równość i prośbę o poprzedni przykład będzie wyglądać tak:

WYBIERAĆ
Produkty. Namorerenlature jako produkt,
Wybór
Kiedy ceny. Cena jest null
Następnie 0.
W przeciwnym razie ceny. Cena
Koniec jako rzeczywiste morze
Z
Dokument. Nie Dutchovyovarovyvug.Thovars jak towary
Lewe podłączenie rejestracji. CenioLooclastura. Nieprawidłowy jako ceny
Produkty. NamerencLature \u003d ceny. NamoreNcLature
GDZIE
Towary. Link \u003d & Linkadunkument

Różnice funkcji isnull () stamtąd jest null

Jak widać z poprzednich przykładów, w obu przypadkach żądanie zwraca te same dane. Funkcja ISNULL () jest obniżonym wyborem, gdy ... jest null ... koniec, ale nadal będzie korzystne z następujących powodów:

  1. Funkcja drugiego () optymalizuje żądanie. Odczytuje się raz, więc podczas sprawdzania złożonej ekspresji żądanie będzie działać szybciej.
  2. Funkcja drugiego () zmniejsza projekt, dzięki czemu żądanie staje się bardziej czytelne.
  3. Podczas wykonywania innej funkcji wyrażenie wymiany jest podawane do rodzaju wyrażenia dla typów typów ciągów (do długości ciągu) i numeryczne (do bitów).

ZERO - brakujące wartości.
Nie mylisz z wartością zerowej! NULL nie jest liczbą, która nie jest równa przestrzeni, pusty link, niezdefiniowany.

Wartość null - wartość formowania, tj. Istnieje typ NULL i jedyne znaczenie tego typu.

Wartości null pojawiają się w zapytaniu w następujących sytuacjach:
a) Zewnętrzne połączenie, w którym odpowiedni wpis został znaleziony w innej tabeli (w lewo - w drugim, po prawej - w pierwszym, z pełnym - w obu)
b) Odwołanie do szczegółów elementów grupy i odwrotnie.
c) Null na liście pól próbkowania (wybierz)
d) Dostęp do szczegółów dotyczących łączy bitów

Jest null.używany w operatorze do wyboru (jak sprawdzić, czy wartość jest pusta (jest null)):
Kod 1C V 8.x
Wybór
Gdy wartość jest , zniknął
W przeciwnym razie wartość
KONIEC

Inny przykład:
Kod 1C V 8.x Wybierz

Wybór, gdy dyskretowanieMainationStoutakes. Natura podstawy jest , a następnie 0
W przeciwnym razie księgowość jest fabryką
Z



GDZIE

Funkcjonować Istnieje istotne (znaczenie, wynikowe) Zwraca wartość swojego pierwszego parametru, jeśli nie jest równe NULL, a wartość drugiego parametru jest inaczej
Jest to składany wybór ... koniec, Butnull jest preferowany.
Kod 1C V 8.x
WYBIERAĆ
Tam jest (książka referencyjna. Namerenclature. Arcticulus, "---") jako artykuł,
Katalog. Namenklaturze. Reprezentacja jako nomenklatura

Inny przykład:
Kod 1C V 8.x
WYBIERAĆ
Katalog mentoring. Nazwa,
Istnieje (rozliczanie księgowości. Zasoby narodowościowe, 0) jako populacja
Z
Katalog. Namerenclature jako przewodnik
Lewe połączenie regisprocesingu. ScienceClature. Lostats, takich jak księgowość
Zgodnie z sklepami księgowymi. Nonenclature \u003d Network Director. Link
GDZIE
Dyrektor generalny. Lawgroup \u003d kłamstwo
W ten przykład Uzyskuje się wszystkie elementy katalogu nomenklatury, po czym dla każdej nomenklatury z rejestru akumulacyjnego otrzymuje się pozostałości bieżące. Dlatego W przypadku nomenklatury, na której brakuje resztek, wirtualny stół pozostałości nie powróci, w wyniku połączenia w polu "Setheresters zniżki. Nie-stawki" będą wartościami NULL dla nomenklatury, którą było brak pozostałości. Aby zamiast null wartości w wyniku zapytania, wartość 0 była obecna, użyliśmy funkcji Benull (), co zapewni pożądaną wymianę.

Naczynka inny niż wybór z następujących powodów:
a) kiedy jest lepiej przeczytany przez żądanie (łatwiej)
b) Gdy istnieje, jeśli sprawdzana jest złożona ekspresja, działa szybciej, ponieważ jest obliczana raz
c) Gdy istnieje wyrażenie zastępcze podane do rodzaju wyrażenia, jeśli ma typ ciągu (długość) lub numer (bit).

Niemożliwe jest sprawdzenie wartości zwykłych równości NULL, ponieważ SQL ma trzycyfrowy logikę - prawda, kłamstwa, , a wynikiem takiego porównania będzie nieznany, który w 1C 8.0 jest podobny do kłamstwa.
ZERO<> 0, więc z lewymi zewnętrznymi połączeniami SPR. Nomenklatura ze stołami pozostałości, cen, kontrahentów z wzajemnymi rozliczeniami przy braku takich zgłoszeń Będą , który nie jest równy 0. Najlepsza decyzja - IT ISNULL.

Podczas pracy z językiem zapytań, czasami istnieje sytuacja, gdy wymaga wymiany wartości null do innej wartości. Można wystąpić potrzeba takiej operacji, na przykład podczas odbierania pozostałości w magazynie całej nomenklatury. W tym artykule opisano, jak korzystać z funkcjonowania języka Query () do rozwiązania takich zadań, a inne opcje rozwiązania są rozpatrywane.

Funkcja isnull.

W języku zapytań funkcja Hasnull (), którego celem jest zastąpienie ekspresji do innego wyrażenia, jeśli wyrażenia miały NULL. Diagram składni tego funkcji wygląda tak:

Isnull (<Проверяемое выражение>, <Выражение замены>)

Ta cecha Zwróć wartość pierwszego parametru, na wypadek, gdyby nie jest , i wartość drugiego wyrażenia, w przeciwnym razie.


WYBIERAĆ
Istnieje (rozliczanie księgowości. Zasoby narodowościowe, 0) jako populacja
Z

GDZIE

W tym przykładzie otrzymuje się wszystkie elementy katalogu nomenklatury, po czym dla każdej nomenklatury z rejestru akumulacyjnego otrzymuje się resztki bieżące. Dlatego W przypadku nomenklatury, na której brakuje resztek, wirtualny stół pozostałości nie powróci, w wyniku połączenia w polu "Setheresters zniżki. Nie-stawki" będą wartościami NULL dla nomenklatury, którą było brak pozostałości. Aby zamiast null wartości w wyniku zapytania, wartość 0 była obecna, użyliśmy funkcji Benull (), co zapewni pożądaną wymianę.

Korzystanie z wyboru operacji

Aby rozwiązać opisany wcześniej opisany, zadanie może być używane przez żądanie wyboru języka zapytań. Przykładem, jak będzie wyglądać prośbą, jak poprzedni będzie wyglądał tak:


WYBIERAĆ
Katalog mentoring. Nazwa,
Wybór, gdy dyskretowanieMainationStoutakes. Natura podstawy jest , a następnie 0
W przeciwnym razie księgowość jest fabryką
Z
Katalog. Namerenclature jako przewodnik
Lewe połączenie regisprocesingu. ScienceClature. Lostats, takich jak księgowość
Zgodnie z sklepami księgowymi. Nonenclature \u003d Network Director. Link
GDZIE
Dyrektor generalny. Lawgroup \u003d kłamstwo

Wynik ta prośba Będzie to identyczne z wynikiem zapytania podane w poprzedniej sekcji.

Korzystanie z funkcji ISNULL () korzystnie używa wyboru operacji z następujących powodów: Nagrywanie UŻYTKOWANIA () jest nieco zwarta, co zwiększa czytelność żądania. Ponadto, w przypadku, gdy wyrażenie jest kompleksową funkcją, w tym funkcją agregatu, obliczenie funkcji isnull () może być szybsze niż analog zarejestrowany za pomocą funkcji wyboru.

Cechy funkcji isnull

Funkcja ISNLULL () Chociaż jest to analogiem operacji do wyboru z prawidłową wartością do NULL, jednak ma różnicę. Różnica polega na tym, że jeśli funkcja ekspresji ma ciąg lub typ liczby, ekspresję wymiany zostanie przekształcone w rodzaj ekspresji.

Na przykład, w przypadku, gdy zeskanowana ekspresja ma typ ciągu (5) i typ ekspresji wymiany (10), rodzaj wyniku zostanie przekonwertowany na typ linii (5). W rezultacie, gdy funkcja zwraca ekspresję wymiany, wartość zostanie przycięta do pięciu znaków.

Z wyrażeniami numerycznymi sytuacja jest podobna: wartość wyrażenia zostanie przekształcona na typ weryfikowalny, tj. Wyrażenie wymiany można przyciąć. Jeśli wartość nie może zostać przekonwertowana, język zapytań zakończy wykonanie żądania błędów. Na przykład błąd zakończy się próbując przekonwertowanie numeru 1000 do numeru (2) typu.

Dzwon.

Są ci, którzy przeczytali tę wiadomość przed tobą.
Subskrybuj odbieranie artykułów świeżych.
E-mail
Nazwa
Nazwisko
Jak chcesz przeczytać dzwonek
Bez spamu