SQLShack (Magyar)

SQL Server CASE statement egyenértékű az IF-THEN utasítás Excelben.

A CASE utasítás annak a logikának a megvalósítására szolgál, ahol egy oszlop értékét a többi oszlop értékeitől függően szeretné beállítani.

az SQL Server CASE utasítás legalább egy pár mikor, majd nyilatkozatok. A WHEN utasítás meghatározza a tesztelendő feltételt. Az akkori utasítás meghatározza a műveletet, ha a WHEN állapot TRUE értéket ad vissza.,

az ELSE utasítás opcionális, és végrehajtja, ha a WHEN feltételek egyike sem igaz. Az esettanulmány végszóval végződik.

ebben a cikkben megnézzük az esettanulmány számos különböző példáját. De mielőtt ezt megtesszük, létrehozunk néhány hamis adatot, amivel dolgozhatunk.,/td>

Adatbázis LÉTREHOZÁSA Bemutatóterem;
UGRÁS
A Bemutatóterem;
CREATE TABLE Autók
(
id INT,
name VARCHAR(50) NEM ÜRES,
cég VARCHAR(50) NEM ÜRES,
power INT NEM ÜRES,
szín VARCHAR(50) NEM ÜRES,
modell INT NEM ÜRES,
állapot VARCHAR(50) NEM ÜRES
)

a fenti szkript létrehozott egy bábu adatbázis neve Bemutatóterem egy Táblázat címe Autók., Az Autótáblának hét oszlopa van: azonosító, név, cég, teljesítmény, szín, modell és állapot.

most helyezzen be néhány dummy adatot az autók táblájába., Hogy lefuttatjuk a következő szkriptet:

nézzük meg, hogy az adatkészlet úgy néz ki, hogy lefuttatjuk a következő szkriptet:

1
SELECT * FROM Autók

A kimeneti néz ki:

látod, hogy az az állapot oszlopban egy X-et minden sor, abban a pillanatban., Az Állapot oszlop értékét a modell oszloptól függően állítjuk be a CASE utasítás használatával, hogy világosan láthassa, mi folyik itt.,

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., A CASE kulcsszóval kezdődik, amelyet a WHEN kulcsszó, majd a feltétel követ.

a feltétel bármilyen érvényes SQL Server kifejezés lehet, amely logikai értéket ad vissza. Például a feltétel lehet modell > 2000, az akkori záradékot a feltétel után használják. Ha a feltétel true értéket ad vissza, az akkor záradékot követő értéket a columnX tárolja. Máskülönben az ELSE záradék utáni érték a columnX-ben is tárolódik. Az SQL Server CASE utasítás véget ér a záradékkal.,

CASE statement examples

nézzük meg most az esettanulmányt akcióban.

egy korábbi szakaszban létrehoztunk egy Cars nevű táblát a bemutatóterem adatbázisában.

a feltétel oszlop volt az érték X minden sorban. Az SQL Server CASE utasítás segítségével a feltétel oszlop értékét “új” értékre állítjuk, ha a modell oszlop értéke nagyobb, mint 2000, különben a feltétel oszlop értéke “régi”lesz.,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., A fenti szkript kimenete így néz ki:

láthatjuk, hogy az X értékét a feltétel oszlopban az autó modelljétől függően “új” és “régi” váltotta fel.

több feltétel a

esettanulmányban több feltételt is kiértékelhet.,

írjunk egy SQL Server CASE utasítást, amely a feltétel oszlop értékét “új” értékre állítja, ha a modell oszlopban az érték nagyobb, mint 2010, “átlag”, ha a modell oszlopban az érték nagyobb, mint 2000, és “Régi”, ha a modell oszlopban az érték nagyobb, mint 1990.,

VÁLASSZA ki a nevet,
modell,
ESETBEN, HA a modell > 2010 AKKOR ” Új ”
MIKOR modell > 2000 MAJD ‘Átlagos’
MIKOR modell > 1990 MAJD a “Régi”
MÁS “Régi” VÉGÉN, MINT feltétel
Az Autók

a kimenet A fenti script így néz ki:

a fenti szkript, mi rendelt három különböző értékeket, hogy az állapot oszlopban, attól függően, hogy az érték a modell oszlop.,

azonban a fenti szkriptben a feltételek átfedésben vannak. a 2010-nél nagyobb értékű modell értéke is meghaladja a 2000-et és az 1990-et. A több feltétel megvalósításának jobb módja a logikai operátorok használata, mint például, vagy nem, stb.,N modell > 2010 AKKOR ” Új ”

MIKOR modell > 2000 modell <2010 AKKOR “Átlagos”
MIKOR modell > 1990-es modell, <2000 MAJD a ‘A régi’
MÁS “Régi” VÉGÉN, MINT feltétel
az Autók

a kimenet A fenti script így néz ki:

azt is értékelni több feltételek a különböző oszlopok, az SQL Server ESETÉBEN nyilatkozat., A következő példában az “új fehér” értékét hozzárendeljük az állapot oszlophoz, ahol a modell nagyobb, mint 2010, a szín pedig fehér.,TYÚK ” Új ”

MIKOR modell > 2000 modell <2010 AKKOR “Átlagos”
MIKOR modell > 1990-es modell, <2000 MAJD a “Régi”
MÁS “Régi” VÉGE, MINT feltétel
az Autók

A kimeneti néz ki:

látod 5. sor, mivel a színe fehér, a modell nagyobb, mint 2010-ben, értéke az állapot oszlopban van állítva, hogy “Fehér”, a kimenet.,

A GROUP by használata SQL Server CASE statement

az esettanulmány a csoporttal együtt is használható utasítás szerint az aggregált funkciók alkalmazásához.,v id=”1dd7e33b85″>

1
2
3
4
5
6
7
VÁLASSZA ki a
ESETBEN, HA a modell > 2000 MAJD ” Új “
MÁS “Régi” VÉGÉN, MINT feltétel,
COUNT(1) MINT gróf
az Autók
CSOPORT ÁLTAL az ESETBEN, HA a modell > 2000 MAJD ” Új “
MÁS “Régi” VÉGE

A fenti szkript használjuk a GRÓF összesített funkció az ÜGYBEN nyilatkozatot.,

az SQL Server CASE utasítás a feltétel oszlop értékét “új” vagy “régi”értékre állítja. A csoportonkénti záradékon belül meghatározzuk, hogy az “új” megfelelő száma 1-gyel növekszik, amikor egy 2000-nél nagyobb modellérték találkozik. Az Else szakasz azt jelenti, hogy a “régi” számát 1-rel növeljük, ha a modell értéke 2000 vagy annál kevesebb. A fenti szkript kimenete így néz ki:

mivel adatkészletünk öt olyan járművel rendelkezik, amelyek értéke a 2000-nél nagyobb “modell”, az ” új ” járművek számlálási oszlopában 5-ös értéket láthat., Hasonlóképpen, volt 5 régi járművek, így láthatjuk 5 a gróf oszlop a “régi” járművek.

hasonlóképpen, több mint két értékkel CSOPORTOSÍTHATUNK., 2000 MAJD ‘Átlagos’

MIKOR modell > 1990 MAJD a “Régi”
MÁS “Régi” VÉGÉN, MINT feltétel,
COUNT(1) MINT gróf
az Autók
CSOPORT ÁLTAL az ESETBEN, HA a modell > 2010 AKKOR ” Új ”
MIKOR modell > 2000 MAJD ‘Átlagos’
MIKOR modell > 1990 MAJD a “Régi”
MÁS “Régi” VÉGE

a fenti szkript, mi csoportosított adatok három csoportba: az “Új”, az “Átlagos”, valamint a “Régi”.,

a kimenet így néz ki:

látható az “új”, “átlagos” és “régi” állapotú autók száma.

következtetés

az esettanulmány akkor hasznos, ha az IF-THEN logikát az SQL Serverben kívánja végrehajtani. Ebben a cikkben láttuk, hogy milyen esettanulmány van a szintaxisával együtt. Azt is láttuk, különböző példák ESET nyilatkozat együtt a használat A csoport által záradék.,

Egyéb nagyszerű cikkek Ben

  • az SQL Server lekérdezési terv gyorsítótárának megértése
  • mi a különbség az SQL Server fürtözött és nem fürtözött indexei között?
  • Hogyan kell használni ablak funkciók
  • adatok Lekérdezése az SQL Server CASE utasítás
  • Szerző
  • Utolsó Hozzászólás
– Ben Richardson fut Látásélesség Képzési vezető szolgáltató az SQL képzés az egyesült KIRÁLYSÁGBAN., Az SQL képzés teljes skáláját kínálja a bevezető tanfolyamoktól a fejlett adminisztrációs és adattárház-képzésig – további részletekért lásd itt. Az Acuity irodái Londonban és Guildfordban, Surrey-ben vannak., Ő is a blogok alkalmanként a Látásélesség blog
összes Megtekintése hozzászólások Ben Richardson

Legújabb hozzászólások Ben Richardson (minden)
  • Power BI: Vízesés, térképeket, Kombinált Látvány – január 19, 2021
  • Power BI: Feltételes formázás adatok színek akció – január 14, 2021
  • Power BI: adatok Importálása az SQL Server vagy MySQL – január 12-én, 2021

Share

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük