sql >> Database teknologi >  >> RDS >> Database

Sådan sorteres i SQL

Problem:

Du vil gerne sortere resultatet af en SQL-forespørgsel i stigende eller faldende rækkefølge.

Eksempel:

Vores database har en tabel med navnet salary_information med data i kolonnerne id , first_name , last_name og monthly_earnings . Vi ønsker at sortere medarbejderne efter deres monthly_earnings i faldende rækkefølge.

id fornavn efternavn månedlig_indtjening
1 Calvin Rios 3500
2 Alan Paterson 4000
3 Kurt Evans 2300
4 Alex Watkins 5500

Løsning:

Vi bruger en ORDER BY klausul. Her er forespørgslen:

Vi bruger funktionen CURRENT_DATE for at få den aktuelle dato:

	SELECT
		first_name,
		last_name,
		monthly_earnings
	FROM salary_information
	ORDER BY monthly_earnings DESC

Her er resultatet af forespørgslen:

fornavn efternavn månedlig_indtjening
Alex Watkins 5500
Alan Paterson 4000
Calvin Rios 3500
Kurt Evans 2300

Nu kan vi se, at Alex Watkins er først på listen, hvilket betyder, at han tjener flest penge.

Diskussion:

Brug en ORDER BY klausul, hvis du vil sortere datasættet i enten stigende eller faldende rækkefølge. Syntaksen for en ORDER BY klausul er som følger:

SELECT col1, col2, …
FROM table
ORDER BY col1, col2, … ASC|DESC;

I ovenstående, ASC|DESC betyder, at du enten skal vælge søgeordet ASC (stigende) eller DESC (faldende) for at bestille datasættet, som du ønsker det.

Udover at sortere efter numeriske kolonner, kan du også sortere efter tekstkolonner. En ORDER BY klausul vil sortere tekstkolonner i alfabetisk rækkefølge.

I stedet for kolonnenavnet kan du også bruge kolonnens placering fra venstre. Så i vores eksempel, i stedet for at skrive:

ORDER BY monthly_earnings DESC

du kan også skrive:

ORDER BY 3 DESC

Hvis du vil sortere tabellen fra eksemplet efter first_name kolonne i alfabetisk (stigende) rækkefølge, kan du bruge følgende forespørgsel:

SELECT
	first_name,
	last_name,
	monthly_earnings
FROM salary_information
ORDER BY first_name ASC

Det er også værd at bemærke, at du kan sortere efter flere kolonner. Dette er nyttigt, når nogle værdier i en given kolonne gentages, og du har brug for yderligere sortering. I dette tilfælde skal du adskille kolonnenavnene med kommaer i ORDER BY-sætningen.

Du kan endda sortere i stigende rækkefølge efter én kolonne og i faldende rækkefølge efter en anden. Det følgende illustrerer syntaksen for denne kombination:

	ORDER BY Col1 ASC, Col2 DESC;
	

Hvis du udelader ASC eller DESC søgeord, udføres en stigende sortering som standard.


  1. Ydelsesovervejelser for midlertidige data i Oracle

  2. Navigering af SQL Server-fejllogs

  3. ADVARSEL:Office Version 2204 kan ødelægge Access-applikationer

  4. En løsning på adgangsgrænsen på 255 kolonner