Výsledky 1 až 15 z 15

Téma: razeni v SQL

  1. #1

    Standardní razeni v SQL

    Potreboval bych seradit vysledek SQL dotazu tak, aby se to seradilo abecedne podle urciteho sloupce, ale kdyz v tom sloupci najde urcitej string (substring), tak aby ten radek soupl na prvni misto.

    napr: jmeno -> Milan, Ales, Petr, Jirka
    ... ORDER BY 'jmeno' ... { but if jmeno='Milan' tak Milan na prvni misto }

    staci kdyz nekdo, kdo tomu fakt rozumi napise: "to nejde" a obejdu to jinak

  2. #2
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    298

    Standardní

    mozna ze to jde, zkus neco jako

    Kód:
    select... where strstr(jehla, kupka).ORDER BY sloupec
    a potom
    Kód:
    select .... where NOT strstr(jehla, kupka) ORDER BY sloupec
    A mas to. Jinak tu fci strstr jsem si vymyslel, resp opsal z php, v mysql bude jiste podobna.-viz manual.

    Pak by to MOZNA taky slo nejak jako

    Kód:
    SELECT .... ORDER BY strstr(jehla, kupka) DESC, SLOUPEC.
    Za predpokladu, ze ta fce strstr vrati nulu/nenulu, tak potom prvni kriterium razeni bude to co vrati ta funkce, tj, prvne to, kde je to nenula a potom kde je to nula, tj tam, kde ten podretezec neni. Ale to je opravdu jen hypoteza, muzes to zkusit bez zaruky.
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  3. #3

    Standardní Re: razeni v SQL

    Citace Původně odeslal Koty
    Potreboval bych seradit vysledek SQL dotazu tak, aby se to seradilo abecedne podle urciteho sloupce, ale kdyz v tom sloupci najde urcitej string (substring), tak aby ten radek soupl na prvni misto.

    napr: jmeno -> Milan, Ales, Petr, Jirka
    ... ORDER BY 'jmeno' ... { but if jmeno='Milan' tak Milan na prvni misto }

    staci kdyz nekdo, kdo tomu fakt rozumi napise: "to nejde" a obejdu to jinak
    No takhle primo to napsat nejde, ale slo by to resit napr. vypocitanym sloupcem:

    Kód:
    select 
    x = (case when jmeno = "Josef"  then 0 else 1 end),
    jmeno 
    from tabulka
    order by x, jmeno

  4. #4
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    298

    Standardní Re: razeni v SQL

    Citace Původně odeslal viki_
    Kód:
    select 
    x = (case when jmeno = "Josef"  then 0 else 1 end),
    jmeno 
    from tabulka
    order by x, jmeno
    No tak tyhle fiury uz neovladam, asi se neco malo zas priucim.. Toz zatim smekam a casem te trumfnu..
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  5. #5

    Standardní

    Ktk:vzdyt to jsou jen primitivity, jako cele SQL - ja SQL moc nemusim, kdyz v tom mam neco napsat dostavam koprivku

  6. #6
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    298

    Standardní

    No, znas to, clovek roky vystaci s nejobycejnejsim selectem, deletem, insertem, updatem, sem tam se podiva do manualu po nejaky ty fci, nebo syntaxi takoveych veci jako je IGNORE, a to mu staci.. -cimz obcas trpi vykon aplikace..
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  7. #7

    Standardní dik

    diky za snahu, ale ten CASE mi nejede
    Uknown column x in field ... asi mam blbe syntaxi

    jeste se na to mrknu doma... ted uz to v praci balim

    asi preskladam phpkem az vysledek
    (coz rychlosti aplikace neprida, ale nemuzem byt vsichni tak dobri

  8. #8

    Standardní

    pokud to delas v MySQL - musis to napsat treba takhle

    Kód:
    select 
    (case when logname = "kucera"  then 0 else 1 end) as "x",
    logname 
    from user
    order by x, logname;

  9. #9

    Standardní

    pokud tu jde o to dosat nejaky jmeno na prvni misto, je to jednoduchy

    Kód:
    SELECT * FROM tabulka ORDER BY jmeno='Milan' DESC, jmeno ASC
    kdyz tam Milan bude, bude prvni, kdyz nebude, tak je to razeny normalne podle abecedy

  10. #10

    Standardní

    Citace Původně odeslal cipis
    pokud tu jde o to dosat nejaky jmeno na prvni misto, je to jednoduchy

    Kód:
    SELECT * FROM tabulka ORDER BY jmeno='Milan' DESC, jmeno ASC
    kdyz tam Milan bude, bude prvni, kdyz nebude, tak je to razeny normalne podle abecedy
    Hmm - tak to je pekny trik, ale treba v Sybase mi to nejde

  11. #11
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    298

    Standardní

    Citace Původně odeslal cipis
    pokud tu jde o to dosat nejaky jmeno na prvni misto, je to jednoduchy

    Kód:
    SELECT * FROM tabulka ORDER BY jmeno='Milan' DESC, jmeno ASC
    kdyz tam Milan bude, bude prvni, kdyz nebude, tak je to razeny normalne podle abecedy
    To je to ci jsem psal ja, jen to bylo s tim, ze to davalo na zacatek ty, ktere obsahovaly nejaky podretezec..
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  12. #12

    Standardní

    Citace Původně odeslal viki_
    Citace Původně odeslal cipis
    pokud tu jde o to dosat nejaky jmeno na prvni misto, je to jednoduchy

    Kód:
    SELECT * FROM tabulka ORDER BY jmeno='Milan' DESC, jmeno ASC
    kdyz tam Milan bude, bude prvni, kdyz nebude, tak je to razeny normalne podle abecedy
    Hmm - tak to je pekny trik, ale treba v Sybase mi to nejde
    tohle jsem testoval na MySQL

  13. #13

    Standardní

    SQL skoro vobec nepoznam, ale neslo byt najprv urobit SELECT blabla WHERE name="Milan" a potom druhy SELECT blabla WHERE NOT name="Milan"?
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  14. #14

    Standardní

    Citace Původně odeslal Rainbow
    SQL skoro vobec nepoznam, ale neslo byt najprv urobit SELECT blabla WHERE name="Milan" a potom druhy SELECT blabla WHERE NOT name="Milan"?
    šlo, ale proč 2 dotazy, když stačí jeden ? ne nadarmo řval SH o zátěži DB...
    C2D Wolfheart stabilized...CoolingSys completed...Aurora 3D Black...full 120mm Wolfheart
    WinXP && Gentoo Powered Wolfheart http://img215.imageshack.us/my.php?i...pgentooqt2.jpg
    Intel Core2Duo E6300 1.86@3.2GHz cooled by Ninja Plus| Gigabyte DS4 | 1024MB Kingston 750@920MHz | sound | Gigabyte X1650Pro SilentPipe II | TEAC 40x & Toshiba DVD-RW | WD800JB 80GB | Logitech MX510 | Fortron 300W NP(PN) | MS Sidewinder Strategic Commander|Acer 1721hm
    C366 2@1,85V 32MB RAM, Slackware 9.1 router connected to Chello

  15. #15
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    298

    Standardní

    no, to je prave otazka, jestli DB server vic vytizi 2 jednoduchy dotazy, nebo jeden slozitej.. Ale v tomhle pripade si myslim, ze je optimalnejsi ten jeden..
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Podobná témata

  1. [PHP] Jak na velmi dlooouhy SQL dotaz pres PHP ?
    Založil Aigor v sekci fóra Programování
    Odpovědí: 15
    Poslední příspěvek: 14.03.2005, 13:20
  2. Jaka Databáze je nelepsi? MS SQL, Mysql, Postgres
    Založil Martyr-M v sekci fóra Programování
    Odpovědí: 25
    Poslední příspěvek: 03.02.2005, 16:45
  3. My SQL
    Založil Titan v sekci fóra Programy a problémy s nimi
    Odpovědí: 15
    Poslední příspěvek: 28.01.2004, 15:46
  4. SQL. Databaza na WZ.CZ
    Založil cd-mann v sekci fóra Programování
    Odpovědí: 3
    Poslední příspěvek: 14.11.2003, 10:31

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •