Azure-SQL per SELECT einen Wertebereich ermitteln

Bewerte diesen Beitrag

SQL-Server-201233Manchmal 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:

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:

SELECT untergrenze
      ,name
      ,id
  FROM bereiche

 

bereiche

 

Nun die Abfrage auf den Bereich des Wertes @Zahl:

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.untergrenze

Bereich

Achtung: im Bespiel wird nur mit > und  < verglichen. Für die Bereichsgrenzen muss hier natürlich noch ein = ergänzt werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


*