Skip to main content

Val av data inom intervall i SQL

Top 25 Excel 2016 Tips and Tricks (April 2025)

Top 25 Excel 2016 Tips and Tricks (April 2025)
Anonim

Det strukturerade fråge språket (SQL) ger databasanvändare möjlighet att skapa anpassade frågor för att extrahera information från databaser. I en tidigare artikel utforskade vi att extrahera information från en databas med SQL SELECT-frågor. Låt oss utöka den diskussionen och utforska hur du kan utföra avancerade frågor för att hämta data som matchar specifika förhållanden.Låt oss överväga ett exempel baserat på den vanliga Northwind-databasen, som ofta skickas med databasprodukter som en handledning.

Här är ett utdrag ur databasens produkttabell:

Produkttabell
SerienummerProduktnamnSupplierIDQuantityPerUnitEnhetsprisUnitsInStock
1Chai110 lådor x 20 väskor18.0039
2chang124 - 12 oz flaskor19.0017
3Anis sirap112 - 550 ml flaskor10.0013
4Kock Antons Cajun krydda248 - 6 oz burkar22.0053
5Kock Antons Gumbo Mix236 lådor21.350
6Mormors Boysenberry Spread312 - 8 oz burkar25.00120
7Uncle Bobs organiska torkade päron312 - 1 pund pkgs.30.0015

Enkla gränsvillkor

De första begränsningarna som vi ställer på vår fråga innebär enkla gränsvillkor. Vi kan specificera dessa i WHERE-klausulen i SELECT-frågan, med hjälp av enkla tillståndsinställningar som är konstruerade med standardoperatörer, till exempel <,>,> = och <=.

Låt oss först göra en enkel fråga som gör att vi kan extrahera en lista över alla produkter i databasen som har en UnitPrice på mer än 20.00:

VÄLJ Produktnamn, UnitPrice FRÅN PRODUKTER VAR Enhetspris> 20.00

Detta ger en lista med fyra produkter, som visas nedan:

ProductName UnitPrice ------- -------- Kock Antons Gumbo Mix 21,35 Kock Antons Cajun Krydda 22.00 Mormors Boysenberry Spread 25.00 Uncle Bobs Organiska Torkade Päron 30.00

Vi kan också använda WHERE-klausulen med strängvärden. Detta motsvarar i stort sett tecken till tal, med A som representerar värdet 1 och Z som representerar värdet 26. Till exempel kunde vi visa alla produkter med namn som börjar med U, V, W, X, Y eller Z med följande fråga:

VÄLJ Produktnamn FRÅN PRODUKTER VAR Produktnamn> = 'T'

Vilket ger resultatet:

Produktnamn ------- Uncle Bobs organiska torkade päron

Uttrycka gränser med gränser

WHERE-klausulen tillåter oss också att genomföra ett intervalltillstånd på ett värde genom att använda flera villkor. Om vi ​​till exempel vill ta vår fråga ovan och begränsa resultaten till produkter med priser mellan 15.00 och 20.00 kan vi använda följande fråga:

VÄLJ Produktnamn, UnitPrice FRÅN PRODUKTER VAR Enhetspris> 15.00 OCH Enhetspris <20.00

Detta ger resultatet nedan:

Produktnamn UnitPrice ------- -------- Chai 18.00 Chang 19.00

Uttrycka gränser med MELLAN

SQL ger också en genväg MELLAN syntax som minskar antalet villkor som vi behöver inkludera och gör frågan mer läsbar. I stället för att använda de två WHERE-villkoren ovan kan vi till exempel uttrycka samma fråga som:

VÄLJ Produktnamn, UnitPrice FRÅN PRODUKTER VAR Enhetspris MELLAN 15.00 OCH 20.00

Som med våra andra villkorsklausuler, arbetar MELLAN med strängvärden också. Om vi ​​ville skapa en lista över alla länder som börjar med V, W eller X, kan vi använda frågan:

VÄLJ Produktnamn FRÅN PRODUKTER VAR Produktnamn MELLAN "A" och "D"

Vilket ger resultatet:

Produktnamn ------- Aniseed sirap Chai Chang Chef Antonus Gumbo Mix Chef Anton Cajun Seasoning

WHERE-klausulen är en kraftfull del av SQL-språket som låter dig begränsa resultat till värden som faller inom specificerade intervall. Det är mycket vanligt att hjälpa till att uttrycka affärslogik och bör vara en del av varje databas professionell verktygslåda.

Det är ofta användbart att införliva gemensamma klausuler i en lagrad procedur för att göra den tillgänglig för dem som saknar SQL-kunskaper.