streda, 13 november 2019 11:24 Written by 3678 times
Rate this item
(2 votes)

My SQL - triedenie riadkov vo výbere

Zdravím databázových programátorov pod MY SQL. Dnes si ukážeme zopár malých príkladov, ako triediť riadky v tabuľke. Popri triedení riadkov sa ku klauzule ORDER BY dá v MYSQL dať niekoľko klauzúl na doplnkové usporadúvanie dát. Taktiež si ukážeme triedenie s hodnotami NULL a náhodné triedenie riadkov.

Príklady:

-- zotriedenie riadkov podľa stĺpca MENO_VYROBKU vzostupne (t.j. od najmenšieho po najväčší)
SELECT * FROM VYROBKY ORDER BY MENO_VYROBKU ASC;

-- zotriedenie riadkov podľa stĺpca MENO_VYROBKU zostupne (t.j. od najväčšieho po najmenší)
SELECT * FROM VYROBKY ORDER BY MENO_VYROBKU DESC;

-- zotriedenie riadkov podľa náhodného výberu riadkov
SELECT * FROM VYROBKY ORDER BY RAND();

-- zotriedenie riadkov podľa náhodného výberu s obmedzením počtu riadkov na 10
SELECT * FROM VYROBKY ORDER BY RAND() LIMIT 10;

-- zotriedenie riadkov podľa stĺpca POZNAMKA s hodnotami NULL na začiatku
SELECT * FROM VYROBKY ORDER BY POZNAMKA;

-- zotriedenie riadkov podľa stĺpca POZNAMKA s hodnotami NULL na konci. 
-- V tomto prípade vidíme, že som si musel pomôcť príkazom CASE z dôvodu, že MySQL driver
-- neobsahuje rutinu NULLS LAST a NULLS FIRST akou disponuje ORACLE.
SELECT * FROM VYROBKY 
ORDER BY 
	CASE 
		WHEN LENGTH(POZNAMKA)=0 THEN 1
		ELSE 0
	END ASC, 
	POZNAMKA ASC;

Dúfam, že tieto zdrojové SQL kódy pomôžu mnohým programátorom a ušetria vela času pri vymýšlaní a programovaní.
S pozdravom.
Alojz Benďák.

Last modified on streda, 13 november 2019 11:29
Alojz Benďák

Autor je administrátor webu a venuje sa programovaniu takmer 23 rokov.

  • prvý kontakt s počítačmi na strednej škole - PMD 1,2,3, PP06, Atari, Sinclair (programovanie v jazyku: strojový kód, basic a pascal):  2 roky
  • na VŠ - jazyky Turbo pascal a Turbo C: 1rok
  • programovanie databázového ekonomického širokoškálneho software v Delphi a C++ Borland (databázy Paradox): 8 rokov v Codex s.r.o. Nitra
  • programovanie webových aplikácií na databázach MySQL a MS SQL server: 1 roky na živnosť (firmy: Hermes Nitra, Schindler v Bratislave)
  • pracoval ako DBA v Homecredit Brno a vo VÚB Bratislava ako vyvojár + optimalizácie v SQL a PL/SQL na Oracle 11g (firma Accenture)
  • programoval programy pre súkromné firmy pre HW na skenovanie povrchov nádrží pre skladovanie tekutých palív (pristroj Leica)
  • momentálne pracuje ako DBA pod Oracle 11g a ako vyvojár vnútropodnikových databázových aplikacií v PHP, SQL, C++, C# a interface v PL/SQL: 11 rokov
  • ďalej programuje s HTML, CSS, Ajax, Javascript, VBA, MS visual C++ a C# malé podporné aplikácie
  • certifikát SQL expert for Oracle 11g   
  • spolupracuje a aktívne učí pre počítačové firmy: Lapis, IVIT v Nitre