Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
W tym artykule omówiono konwencje, których należy użyć podczas wprowadzania następujących typów wartości literałów dla warunku wyszukiwania:
- Wartości tekstowe
- Wartości liczbowe
- Daty
- Wartości logiczne
Notatka
Informacje zawarte w tym artykule pochodzą z reguł dla standardowego programu SQL-92. Jednak każda baza danych może zaimplementować bazę danych SQL na własny sposób. W związku z tym wytyczne podane w tym miejscu mogą nie mieć zastosowania w każdym przypadku. Jeśli masz pytania dotyczące wprowadzania wartości wyszukiwania dla określonej bazy danych, zapoznaj się z dokumentacją używanej bazy danych.
Wyszukiwanie wartości tekstowych
Podczas wprowadzania wartości tekstowych w warunkach wyszukiwania mają zastosowanie następujące wskazówki:
cudzysłów ująć wartości tekstowe w pojedyncze cudzysłowy, jak w tym przykładzie dla nazwiska:
'Smith'Jeśli wprowadzasz warunek wyszukiwania w okienku Kryteria (Narzędzia bazy danych wizualizacji), możesz po prostu wpisać wartość tekstową, a projektant zapytań i widoków automatycznie umieszcza wokół niego pojedyncze cudzysłowy.
Notatka
W niektórych bazach danych terminy w pojedynczych cudzysłowach są interpretowane jako wartości literału, natomiast terminy w podwójnym cudzysłowie są interpretowane jako obiekty bazy danych, takie jak odwołania do kolumn lub tabeli. W związku z tym, mimo że projektant zapytań i widoków może zaakceptować terminy w podwójnym cudzysłowie, może interpretować je inaczej niż oczekiwano.
Osadzanie apostrofów Jeśli wyszukiwane dane zawierają pojedynczy cudzysłów (apostrof), możesz wprowadzić dwa pojedyncze cudzysłów, aby wskazać, że pojedynczy cudzysłów oznacza pojedynczy cudzysłów jako wartość literału, a nie ogranicznik. Na przykład następujący warunek wyszukuje wartość "Swann's Way:"
='Swann''s Way'Limity długości Nie przekraczaj maksymalnej długości instrukcji SQL dla bazy danych podczas wprowadzania długich ciągów.
Ważność wielkości liter Postępuj zgodnie z regułami poufności przypadków dla używanej bazy danych. Używana baza danych określa, czy w wyszukiwaniu tekstowym jest rozróżniana wielkość liter. Na przykład niektóre bazy danych interpretują operator "=", aby oznaczać dokładne dopasowanie z uwzględnieniem wielkości liter, ale inne zezwalają na dopasowania dowolnej kombinacji wielkich i małych liter.
Jeśli nie masz pewności, czy baza danych używa wyszukiwania z uwzględnieniem wielkości liter, możesz użyć funkcji UPPER lub LOWER w warunku wyszukiwania, aby przekonwertować przypadek danych wyszukiwania, jak pokazano w poniższym przykładzie:
WHERE UPPER(lname) = 'SMITH'
Wyszukiwanie wartości liczbowych
Podczas wprowadzania wartości liczbowych w warunkach wyszukiwania mają zastosowanie następujące wskazówki:
Cudzysłowu
Nie ujęć liczb w cudzysłów.
Znaki nieliczbowe
Nie dołączaj znaków innych niż numeryczne z wyjątkiem separatora dziesiętnego (zgodnie z definicją w oknie dialogowym Ustawienia regionalne w Panelu sterowania systemu Windows) i znaku ujemnego (-). Nie dołączaj symboli grupowania cyfr (takich jak przecinek między tysiącami) ani symboli waluty.
Znaczniki dziesiętne
Jeśli wprowadzasz liczby całkowite, możesz dołączyć znacznik dziesiętny, niezależnie od tego, czy wyszukiwana wartość jest liczbą całkowitą, czy liczbą rzeczywistą.
Notacja naukowa
Możesz wprowadzić bardzo duże lub bardzo małe liczby przy użyciu notacji naukowej, jak w tym przykładzie:
> 1.23456e-9
Wyszukiwanie w datach
Format używany do wprowadzania dat zależy od używanej bazy danych i w jakim okienku projektanta zapytań i widoków wprowadzasz datę.
Notatka
Jeśli nie wiesz, którego formatu używa źródło danych, wpisz datę w kolumnie filtru okienka Kryteria w dowolnym formacie znanym. Projektant konwertuje większość takich wpisów na odpowiedni format.
Projektant zapytań i widoków może pracować z następującymi formatami dat:
Ustawienia regionalne specyficzne dla ustawień regionalnych
Format określony dla dat w oknie dialogowym Właściwości ustawień regionalnych systemu Windows .
Specyficzne dla bazy danych
Dowolny format zrozumiały dla bazy danych.
Standardowa data ANSI
Format, który używa nawiasów klamrowych, znacznika "d" do wyznaczenia daty i ciągu daty, jak w poniższym przykładzie:
{ d '1990-12-31' }Standardowa data/godzina usługi ANSI
Podobnie jak w przypadku daty standardowej ANSI, ale używa "ts" zamiast "d" i dodaje godziny, minuty i sekundy do daty (przy użyciu zegara 24-godzinnego), jak w tym przykładzie dla 31 grudnia 1990 r.:
{ ts '1990-12-31 00:00:00' }Ogólnie rzecz biorąc, standardowy format daty ANSI jest używany z bazami danych reprezentującymi daty przy użyciu rzeczywistego typu danych daty. Natomiast format daty/godziny jest używany z bazami danych obsługującymi typ danych typu data/godzina.
Poniższa tabela zawiera podsumowanie formatu daty, którego można użyć w różnych okienkach Projektanta zapytań i widoków.
| Panel | Format daty |
|---|---|
| Kryteria | Standard ANSI zależny od ustawień regionalnych i bazy danych Daty wprowadzone w okienku Kryteria (Visual Database Tools) są konwertowane na format zgodny z bazą danych w okienku SQL. |
| SQL | Standard ANSI specyficzny dla bazy danych |
| Wyniki | Specyficzne dla ustawień regionalnych |
Wyszukiwanie wartości logicznych
Format danych logicznych różni się od bazy danych do bazy danych. Bardzo często wartość False jest przechowywana jako zero (0). Wartość True jest najczęściej przechowywana jako 1 i od czasu do czasu jako -1. Podczas wprowadzania wartości logicznych w warunkach wyszukiwania mają zastosowanie następujące wskazówki:
Aby wyszukać wartość False, użyj zera, jak w poniższym przykładzie:
SELECT * FROM authors WHERE contract = 0;Jeśli nie masz pewności, jakiego formatu należy użyć podczas wyszukiwania wartości True, spróbuj użyć wartości 1, jak w poniższym przykładzie:
SELECT * FROM authors WHERE contract = 1;Alternatywnie można rozszerzyć zakres wyszukiwania, wyszukując dowolną wartość inną niż zero, jak w poniższym przykładzie:
SELECT * FROM authors WHERE contract <> 0;