Azure-SQL per SELECT einen Wertebereich ermitteln
Manchmal möchte man per SELECT ermitteln in welchem Wertebereich ein Ergebnis liegt.
Angenommen es gibt fogende Bereiche:
- Bereich A Werte zwischen 0 und 25,
- Bereich B Werte zwischen 25 und 50,
- Bereich C Werte zwischen 50 und 100,
- Bereich D Werte zwischen 100 und 1000.
Dazu erstelle ich folgende Tabelle und fülle per INSERT die Bereiche:
sql
CREATE TABLE bereiche(
untergrenze int NOT NULL,
name NCHAR (1) NOT NULL,
id int IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED (id ASC)
)
INSERT INTO bereiche (untergrenze,name) VALUES (0,'A');
INSERT INTO bereiche (untergrenze,name) VALUES (25,'B');
INSERT INTO bereiche (untergrenze,name) VALUES (50,'C');
INSERT INTO bereiche (untergrenze,name) VALUES (100,'D');
INSERT INTO bereiche (untergrenze,name) VALUES (1000,'X');Ich erhalte folgende Datensätze:
sql
SELECT untergrenze
,name
,id
FROM bereicheNun die Abfrage auf den Bereich des Wertes @Zahl:
sql
DECLARE @Zahl int = 30
SELECT @Zahl AS Zahl,buntergrenze.name AS Bereich
FROM bereiche buntergrenze
INNER JOIN bereiche bobergrenze
ON buntergrenze.id = bobergrenze.id-1
WHERE @Zahl > buntergrenze.untergrenze AND @Zahl < bobergrenze.untergrenzeAchtung: im Bespiel wird nur mit > und < verglichen. Für die Bereichsgrenzen muss hier natürlich noch ein = ergänzt werden.

