SQL Server-statement is gelijk aan het if-THEN-statement in Excel.
het statement CASE wordt gebruikt om de logica te implementeren waarbij u de waarde van een kolom wilt instellen afhankelijk van de waarden in andere kolommen.
Het SQL Server-statement bestaat uit ten minste één paar WHEN and THEN statements. De WHEN statement specificeert de te testen voorwaarde. Het statement dan specificeert de actie als de voorwaarde wanneer waar retourneert.,
het else statement is optioneel en wordt uitgevoerd wanneer geen van de Voorwaarden True retourneert. De CASE statement eindigt met een end keyword.
in dit artikel zullen we een aantal verschillende voorbeelden van de CASE statement bekijken. Maar voordat we dat doen, maken we wat dummy data om mee te werken.,/td>
Het bovenstaande script is gemaakt van een dummy database genaamd ShowRoom met een Tafel in het zogenaamde Auto ‘ s., De lijst van auto ‘ s heeft zeven kolommen: id, Naam, bedrijf, macht, kleur, model, en voorwaarde.
laten we nu wat dummy data invoegen in de Cars tabel., Voer het volgende script:
Laten we eens kijken hoe onze dataset ziet, voer je het volgende script:
1
|
SELECTEER * UIT Auto ‘ s
|
De uitvoer ziet er als volgt uit:
U kan zien dat de voorwaarde kolom bevat een X in elke rij op het moment., We zullen de waarde van de kolom voorwaarde instellen, afhankelijk van de kolom model, met behulp van de CASE statement zodat u duidelijk kunt zien wat er aan de hand is.,
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., Het begint met het trefwoord CASE gevolgd door het zoekwoord WHEN en vervolgens de voorwaarde.
De voorwaarde kan elke geldige SQL Server expressie zijn die een Booleaanse waarde retourneert. Bijvoorbeeld, de voorwaarde kan model > 2000 zijn, de dan clausule wordt gebruikt na de voorwaarde. Als de voorwaarde true retourneert, wordt de waarde die volgt op de then-clausule opgeslagen in columnX. Else, de waarde na de Else clausule, zal ook worden opgeslagen in columnX. Het SQL Server CASE statement eindigt met de END clausule.,
voorbeelden van CASE statement
laten we nu de CASE statement in Actie bekijken.
in een vorige sectie hebben we een tabel gemaakt met de naam Cars in de database van de ShowRoom.
de kolom voorwaarde had de waarde X voor alle rijen. We zullen de SQL Server CASE statement gebruiken om de waarde van de voorwaarde kolom in te stellen op “nieuw” als de model kolom een waarde heeft groter dan 2000, anders zal de waarde voor de voorwaarde kolom worden ingesteld op “oud”.,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., De uitvoer van het bovenstaande script ziet er als volgt uit:
u kunt zien dat de waarde van X in de kolom voorwaarde is vervangen door “nieuw” en “oud”, afhankelijk van het model van de auto.
meerdere voorwaarden in CASE statement
u kunt meerdere voorwaarden evalueren in de CASE statement.,
laten we een SQL Server CASE statement schrijven dat de waarde van de voorwaardenkolom instelt op “nieuw” als de waarde in de modelkolom groter is dan 2010, op “Gemiddeld” als de waarde in de modelkolom groter is dan 2000, en op ” oud ” als de waarde in de modelkolom groter is dan 1990.,
de uitvoer van De bovenstaande script ziet er als volgt uit:
In het bovenstaande script, we krijgen drie verschillende waarden van de voorwaarde kolom, afhankelijk van de waarde in het model kolom.,
echter, in het bovenstaande script, de Voorwaarden overlappen als. het model met een waarde groter dan 2010 heeft ook een waarde groter dan 2000 en 1990. Een betere manier om meerdere voorwaarden te implementeren is het gebruik van logische operators zoals EN, OF, NIET, enz.,N model > 2010 ‘Nieuwe’
de uitvoer van De bovenstaande script ziet er zo uit:
We kunnen ook het evalueren van meerdere voorwaarden uit verschillende kolommen met behulp van de SQL Server-CASE statement., In het volgende voorbeeld zullen we de waarde van “Nieuw Wit” toewijzen aan de voorwaarde kolom waar het model groter is dan 2010 en de kleur wit is.,KIP ‘Nieuwe’
De output ziet er zo uit:
U kunt zien op rij 5, dat, aangezien de kleur is wit en het model is groter dan in 2010, waarde voor de kolom voorwaarde is ingesteld op “White” in de output.,
met behulp van GROUP BY with SQL Server CASE statement
De CASE statement kan ook worden gebruikt in combinatie met de GROUP BY statement om geaggregeerde functies toe te passen.,v id=”1dd7e33b85″>
In het script hierboven gebruiken we de GRAAF statistische functie met de CASE-instructie.,
het SQL Server-statement stelt de waarde van de kolom voorwaarde in op “nieuw” of “oud”. Binnen de groep door clausule, specificeren we dat de corresponderende telling voor “nieuw” wordt verhoogd met 1, wanneer een modelwaarde groter dan 2000 wordt aangetroffen. Het Else gedeelte betekent dat we de telling voor “oud” met 1 verhogen als de waarde van het model 2000 of minder is. De uitvoer van het bovenstaande script ziet er als volgt uit:
aangezien onze dataset vijf voertuigen heeft met een waarde voor ‘model’ van groter dan 2000, kunt u een 5 zien in de count kolom voor” nieuwe ” voertuigen., Op dezelfde manier hadden we 5 oude voertuigen en dus kunnen we zien 5 voor de count kolom van “oude” voertuigen.
evenzo kunnen we groeperen met meer dan twee waarden., 2000 DAN ‘Gemiddelde’
In het bovenstaande script, we de gegevens gegroepeerd in drie categorieën: “New”, “Gemiddelde” en “Oud”.,
De uitvoer ziet er als volgt uit:
u kunt de telling zien voor “New”, “Average” en “Old” condition cars.
conclusie
De CASE-instructie is handig als u IF-THEN logica wilt implementeren in SQL Server. In dit artikel zagen we wat CASE statement is samen met de syntaxis. We zagen ook verschillende voorbeelden van CASE statement samen met het gebruik ervan met de groep door clausule.,
andere grote artikelen uit Ben
- Wat is het verschil tussen geclusterde en niet-geclusterde indexen in SQL Server?
- Hoe vensterfuncties te gebruiken
- gegevens opvragen met behulp van SQL Server CASE statement
- auteur
- recente berichten
Bekijk alle berichten van Ben Richardson
- Voeding: BI Waterval Grafieken en Visuals Gecombineerd – 19 januari 2021
- Voeding: BI Voorwaardelijke opmaak en gegevens kleuren in actie – 14 januari 2021
- Power BI: Importeren van gegevens uit SQL Server en MySQL – 12 januari 2021