instrukcja SQL Server CASE jest równoważna instrukcji IF-THEN w Excelu.
Instrukcja CASE jest używana do implementacji logiki, w której chcesz ustawić wartość jednej kolumny w zależności od wartości w innych kolumnach.
instrukcja SQL Server CASE składa się z co najmniej jednej pary instrukcji WHEN oraz THEN. Instrukcja WHEN Określa warunek, który ma być testowany. Instrukcja THEN określa akcję, jeśli warunek WHEN zwraca TRUE.,
Instrukcja ELSE jest opcjonalna i jest wykonywana, gdy żaden z warunków WHEN nie zwraca true. Instrukcja CASE kończy się słowem kluczowym END.
w tym artykule przyjrzymy się kilku różnym przykładom instrukcji CASE. Ale zanim to zrobimy, stworzymy fałszywe dane do pracy.,(div>
powyższy skrypt stworzył atrapę bazy danych o nazwie showroom z jedną tabelą w niej o nazwie cars., Tabela samochodów składa się z siedmiu kolumn: id, Nazwa, firma, moc, kolor, model i stan.
teraz wstawmy jakieś atrapy danych do tabeli samochodów., Wykonaj następujący skrypt:
sprawdźmy jak wygląda nasz zbiór danych, wykonaj następujący skrypt:
1
|
wybierz * z samochodów
|
wyjście wygląda tak:
możesz zobaczyć, że kolumna condition zawiera X w każdym wierszu w tej chwili., Ustawimy wartość kolumny condition, w zależności od Kolumny modelu, używając instrukcji CASE, abyś mógł wyraźnie zobaczyć, co się dzieje.,
The syntax of the CASE statement is pretty straight forward:
1
2
3
4
5
|
SELECT column1,
column2,
CASE WHEN CONDITION THEN 'Value1′
ELSE 'Value2′ END AS columnX
FROM Cars
|
The CASE statement has to be included inside the SELECT Statement., Zaczyna się od słowa kluczowego CASE, po którym następuje słowo kluczowe WHEN, a następnie warunek.
warunkiem może być dowolne poprawne wyrażenie SQL Server, które zwraca wartość logiczną. Na przykład, warunek może być model > 2000, klauzula THEN jest używana po warunku. Jeśli warunek zwraca true, wartość następująca po klauzuli THEN jest przechowywana w columnX. Else, wartość po klauzuli ELSE, będzie również przechowywana w columnX. Instrukcja SQL Server CASE kończy się klauzulą END.,
przykłady instrukcji CASE
zobaczmy teraz instrukcję CASE w akcji.
w poprzedniej sekcji stworzyliśmy tabelę o nazwie samochody w bazie salonów.
kolumna condition miała wartość X dla wszystkich wierszy. Przy pomocy polecenia SQL Server CASE ustawimy wartość kolumny condition na ” New ” jeżeli kolumna modelu ma wartość większą niż 2000, w przeciwnym razie wartość kolumny condition zostanie ustawiona na „Old”.,ok at the following script:
1
2
3
4
5
|
SELECT name,
model,
CASE WHEN model > 2000 THEN 'New'
ELSE 'Old' END AS condition
FROM Cars
|
The above script displays the name, model and condition columns from the Cars table., Wynik powyższego skryptu wygląda następująco:
widać, że wartość X w kolumnie condition została zastąpiona przez „New” i „Old” w zależności od modelu samochodu.
wiele warunków w instrukcji CASE
Możesz ocenić wiele warunków w instrukcji CASE.,
napiszmy instrukcję SQL Server CASE, która ustawia wartość kolumny condition na „New”, jeśli wartość w kolumnie model jest większa niż 2010, na „Average”, jeśli wartość w kolumnie model jest większa niż 2000, oraz na „Old”, jeśli wartość w kolumnie model jest większa niż 1990.,
wynik powyższego skryptu wygląda następująco:
w powyższym skrypcie przypisaliśmy trzy różne wartości do kolumny Condition w zależności od wartości w kolumnie modelu.,
jednak w powyższym skrypcie warunki nakładają się na siebie jako. model o wartości większej niż 2010 ma również wartość większą niż 2000 i 1990. Lepszym sposobem implementacji wielu warunków jest użycie operatorów logicznych, takich jak AND, OR, NOT, itp.,N model > 2010 następnie”nowy”
wynik powyższego skryptu wygląda następująco:
możemy również ocenić wiele warunków z różnych kolumn za pomocą instrukcji SQL Server Case., W poniższym przykładzie przypiszemy wartość „New White” do kolumny condition, gdzie model jest większy niż 2010, a kolor jest biały.,HEN 'Nowy'
wyjście wygląda tak:
z wiersza 5 widać, że ponieważ kolor jest biały, a model jest większy niż 2010, wartość kolumny condition została ustawiona na „New White” na wyjściu.,
użycie GROUP BY z instrukcją SQL Server CASE
Instrukcja CASE może być również używana w połączeniu z instrukcją GROUP BY w celu zastosowania funkcji agregujących.,v id=”1dd7e33b85″>
w powyższym skrypcie używamy funkcji count aggregate z instrukcją Case.,
polecenie SQL Server CASE ustawia wartość kolumny condition na „New” lub „Old”. Wewnątrz klauzuli GROUP BY określamy, że odpowiednia Liczba dla „New” jest zwiększana o 1, gdy napotkana jest wartość modelu większa niż 2000. Sekcja Else oznacza, że zwiększamy liczbę dla „starego” o 1, jeśli wartość modelu wynosi 2000 lub mniej. Wynik powyższego skryptu wygląda następująco:
ponieważ nasz zbiór danych ma pięć pojazdów o wartości 'model' większej niż 2000, możesz zobaczyć 5 w kolumnie zliczania dla „nowych” pojazdów., Podobnie, mieliśmy 5 starych pojazdów i stąd możemy zobaczyć 5 dla kolumny zliczania” starych ” pojazdów.
Podobnie możemy grupować przez więcej niż dwie wartości., 2000 następnie 'Średnia'
iv id
w powyższym skrypcie pogrupowaliśmy dane w trzy kategorie:”nowe”, „średnie” i „stare”.,
wyjście wygląda tak:
możesz zobaczyć liczbę „nowych”, „średnich” i „starych” samochodów.
podsumowanie
Instrukcja CASE przydaje się, gdy chcemy zaimplementować logikę IF-THEN w SQL Server. W tym artykule dowiedzieliśmy się, czym jest CASE statement wraz z jego składnią. Widzieliśmy również różne przykłady instrukcji CASE wraz z jej użyciem z klauzulą GROUP BY.,
inne świetne artykuły z Ben
- zrozumienie SQL Server query plan cache
- Jaka jest różnica między Klastrowanymi i Nieklastrowanymi indeksami w SQL Server?
- Jak korzystać z funkcji okna
- odpytywanie danych za pomocą instrukcji CASE SQL Server
- Autor
- Ostatnie posty
Zobacz wszystkie posty Ben Richardson
- Power BI: wykresy wodospadu i połączone wizualizacje – 19 stycznia 2021
- Power BI: formatowanie warunkowe i kolory danych w akcji – 14 stycznia 2021
- Power BI: importowanie danych z serwera sql i MySQL – 12 stycznia 2021