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>
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.,
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 ”
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 ”
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″>
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’
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
összes Megtekintése hozzászólások Ben Richardson
- 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