Starší komentáře ke článku: Třídění podle různých sloupců pomocí CASE v MS SQL
Zpět na článek | Úvodní stránka Interval.cz
Datum vložení: 1.4.2005 12:17:38
Já bych vyšel z posledního příkladu, a napsal bych to takto: ORDER BY CASE WHEN @sestupne = 1 THEN CASE WHEN @sloupec = 1 THEN sloupec1 WHEN @sloupec = 2 THEN sloupec2 END DESC, CASE WHEN @sestupne = 0 THEN CASE WHEN @sloupec = 1 THEN sloupec1 WHEN @sloupec = 2 THEN sloupec2 END ASC Ještě mě tak napadá, že je možné, že se pro řazení někdy používají indexy (např. při TOP, ale jistý si tím nejsem), pak by asi bylo lepší do procedury napsat rovnou ty dotazy odděleně, abychom použití indexů nebránili: IF @sloupec = 1 AND @sestupne = 1 SELECT ... ORDER BY @sloupec1 DESC IF @sloupec = 1 AND @sestupne = 0 SELECT ... ORDER BY @sloupec1 ASC atd.
Datum vložení: 4.4.2005 17:24:38
Přesně tak... Tato konstrukce neumožní sql optimizeru vzít v úvahu jakýkoliv index pro třídění, navíc se generuje další krok v prováděcím plánu na vyhodnocení toho case (compute scalar). Takže tento postup je vhodný jen, pokud očekáváte, že výsledný dataset bude rozumně malý.
Datum vložení: 4.4.2005 16:32:29
Nejsem expert na MS SQL ale v Oracle jde pouzit primo ORDER BY 3,5 coz znamena setrid podle sloupce 3 nasledne 5 atd.
Datum vložení: 4.4.2005 17:26:14
MS SQL nabízí totéž, ale IMHO bych tento postup nedoporučil. Sice si ušetříte trochu psaní, ale ve chvíli, kdy přidáváte nebo ubíráte nějaký sloupec v selectu si ušetříte hodně zmatečných chyb z nepozornosti
Datum vložení: 14.4.2005 22:28:57
Samozrejme ze prime pouzivani cisel je vcelku barbarske ale to lze zjednodusit treba tak ze cisla sloupcu zadefinuji jako konstanty, ktere nasledne pouzivam obdobne jako jmena sloupcu.
Datum vložení: 5.4.2005 9:30:51
Řadí se např. podle abecedy, třídí se do několika skupin. (Například odpad na papír, plasty a na ten zbytek). Je to jedna z věcí, kvůli které vzdělaní lidé považují počítačníky za pologramoty. Tak to prosím pište česky nebo mi tento názor vyvraťte.
Datum vložení: 5.4.2005 22:48:46
Váš názor je přirozený a přirozeně zcestný. Protiargument existuje již léta, je součástí elementárních základů statistiky a byl probírán i zde na Intervalu. Řadí se totiž vždy podle nějaké obecné, předem dohodnuté posloupnosti kategorií, zatímco třídit lze do jakýchkoli kategorií. Z tohto pohledu je řazení konkretizovanou metodou třídění, řazení je podmnožinou třídění...
Datum vložení: 6.4.2005 16:11:11
Díky za odpověď, ale st8le jste mě nepřesvědčil. Byl by link na ten článek nebo název toho článku?
Datum vložení: 8.4.2005 9:32:43
Přidám spíše podpůrný armument. Ve škole v tělocviku jsme se řadili do řady nebo třídili? Jediný správný český výraz pro tuto situaci je řazení. Radim Hampel
Datum vložení: 27.4.2005 17:26:51
encyklopedie universum uvádí mj. tento význam slovesa třídění: [i] třídění, 3. informatika inform. sestavení vět datového souboru podle nějakého řádu, např. podle abecedy;[/i] Takže (alespoň podle naučného slovníku) v kontextu článku je výraz užitý správně. IMHO je nejdůležitější, když si rozumíme. Co jsou třídící algoritmy si dovedu jasně představit, ale co je to řadící algoritmus? To sousloví se rozhodně nepoužívá pro algoritmy, které souvisí s pořadím dat. Honza Votava
Datum vložení: 27.6.2005 8:04:08
Encyklopedie universum zřejmě obsahuje víc chyb, včetně této. Co je to třídící algoritmus? To je algoritmus, který třídí data do různých kategorií a není přitom řečeno, jaké pořadí bude mít v jednotlivých kategoriích. Řadící algoritmus vytváří v datech pořadí a pro algoritmy, které souvisí s pořadím dat, se rozhodně používá. Už jste někdy slyšeli pojem "Třídění metodou třídění"? Že to zní blbě? Správně je totiž "Řazení metodou třídění".
Datum vložení: 23.4.2005 23:20:35
Jen pro informaci - nemělo by se to spíše jmenovat Třídění podle předem specifikovaných sloupců pomocí CASE v MS SQL nebo tak nějak? Není adekvátním a možná lepším řešením napsání více procedur či funkcí pokud je to natvrdo v kódu? zsery
Datum vložení: 25.4.2005 14:02:53
zdravim, mam problemik s vyhladavanim v db cez stlpec, ktory v sebe obsahuje diakritiku. vsetko bezi ok, az na pismena Č, Ď a Ň... pri vyhladavani cez Č mi vracia riadky, ktore zacianaju na Č, ale aj na E... detto vyhladavanie cez Ď, kde mi vrati aj riadky s pismenami I a Ň s pismenami O...a obratene, teda pri vyhladavani E mi vrati aj Č...atd tabulka je typu MyIsam... ako mozno vyriesit tento problem? vdaka