Mam instrukcję SQL, która ma CASE
from SELECT
i po prostu nie mogę tego zrobić poprawnie. Czy możecie mi pokazać przykład, CASE
gdzie przypadki są warunkami, a wyniki są z przypadków. Na przykład:
Select xxx, yyy
case : desc case when bbb then 'blackberry';
when sss then 'samsung';
end
from (select ???? .....
gdzie pokazują wyniki
name age handphone
xxx1 yyy1 blackberry
xxx2 yyy2 blackberry
sql
sql-server
case
fadzli feizal
źródło
źródło
Odpowiedzi:
MSDN jest dobrym źródłem informacji na tego typu pytania dotyczące składni i użycia. To pochodzi ze strony Transact SQL Reference - CASE.
http://msdn.microsoft.com/en-us/library/ms181765.aspx
Inną dobrą witryną, którą możesz chcieć sprawdzić, jeśli używasz SQL Server, jest SQL Server Central . Zawiera ona szeroką gamę zasobów dostępnych dla dowolnego obszaru SQL Server, którego chcesz się nauczyć.
źródło
Myślę, że te mogą być pomocne dla Ciebie.
Używanie
SELECT
instrukcji z prostymCASE
wyrażeniemW
SELECT
instrukcji prosteCASE
wyrażenie pozwala tylko na sprawdzenie równości; nie dokonuje się innych porównań. Poniższy przykład używaCASE
wyrażenia, aby zmienić wyświetlanie kategorii linii produktów, aby były bardziej zrozumiałe.Użycie
SELECT
instrukcji z wyszukiwanymCASE
wyrażeniemW
SELECT
instrukcji wyszukiwaneCASE
wyrażenie umożliwia zastąpienie wartości w zestawie wyników na podstawie wartości porównawczych. Poniższy przykład wyświetla cenę katalogową jako komentarz tekstowy na podstawie zakresu cen dla produktu.Używanie
CASE
wORDER BY
klauzuliW poniższych przykładach użyto
CASE
wyrażenia wORDER BY
klauzuli, aby określić kolejność sortowania wierszy na podstawie danej wartości kolumny. W pierwszym przykładzie obliczana jest wartość w kolumnie SalariedFlag tabeli HumanResources.Employee. Pracownicy, dla których SalariedFlag ustawiono na 1, są zwracani w kolejności malejącej przez BusinessEntityID. Pracownicy, dla których SalariedFlag jest ustawiona na 0, są zwracani w kolejności rosnącej przez BusinessEntityID. W drugim przykładzie zestaw wyników jest uporządkowany według kolumny TerritoryName, gdy kolumna CountryRegionName jest równa „United States” i według CountryRegionName dla wszystkich pozostałych wierszy.Używanie
CASE
wUPDATE
oświadczeniuPoniższy przykład używa
CASE
wyrażenia wUPDATE
instrukcji, aby określić wartość ustawioną dla kolumny VacationHours dla pracowników z SalariedFlag ustawioną na 0. Gdy odejmowanie 10 godzin od VacationHours daje wartość ujemną, VacationHours jest zwiększana o 40 godzin; w przeciwnym razie Urlop jest wydłużony o 20 godzin.OUTPUT
Klauzula jest używany do wyświetlania przed i po wartości wakacje.Używanie
CASE
wHAVING
klauzuliPoniższy przykład używa
CASE
wyrażenia wHAVING
klauzuli, aby ograniczyć wiersze zwracane przezSELECT
instrukcję. Oświadczenie zwraca maksymalną stawkę godzinową dla każdego stanowiska w tabeli HumanResources.Employee.HAVING
Klauzula ogranicza tytułów do tych, które są utrzymywane przez mężczyzn z maksymalnym większym stopniu wynagrodzenie niż 40 dolarów lub kobiet z maksymalnym większym stopniu wynagrodzenie niż 42 dolarów.Aby uzyskać więcej szczegółowych informacji na temat tego przykładu, odwiedź źródło .
Odwiedź również tutaj i tutaj, aby uzyskać kilka przykładów ze szczegółami.
źródło
możesz także użyć:
źródło