Autor Zpráva
Valej
Profil
Dobrý deň, prosím poradiť s nasledovným (pre iných možno jednoduchým) problémom:

Mám tabuľku s viacerými stĺpcami, v ktorej sa v troch stĺpcoch vyskytujú dáta podľa nasledovnej logiky, uvediem príklad, máme povedzme riadok s hodnotami

  A     B     C
  1     66    44

tak niekde inde je riadok tabuľky majúci nasledovné hodnoty

  A     B     C
  2     44    66

Obecne povedané, v stĺpci A je vždy hodnota 1 alebo 2, pričom hodnoty stĺpcov B a C môžu byť ľubovoľné, ale sú vzájomne vymenené podľa hodnoty stĺpca A.

Môj problém je v tom, že nie som schopný vytvoriť select, ktorý by tabuľku triedil tak, že výpis by bol zoradený tak ako je to urobené vyššie, respektíve teda takto:
  A     B     C
  1     66    44
  2     44    66
  1     7     9
  2     9     7
  atď ...
Kajman
Profil
Ačkoli to ukládání smysl nedává, příkladová data by mohlo řadit
order by if(A=1,B,C), if(A=1,C,B), A
Tori
Profil
Valej:
Pro každou dvojici hodnot tam tedy máte 2 řádky, které se liší jen tím, že podruhé jsou hodnoty ve sloupcích B a C přehozené? Ostatní sloupce (kromě A) se v této dvojici řádků shodují či ne?
Můžu se jen ze zvědavosti zeptat, jaká data takhle ukládáte? (Tipuji to na soukromé zprávy mezi uživateli.)
Valej
Profil
Tori:
Ostatné stĺpce sa nezhodujú (teda väčšinou nie, náhodne sa niektoré údaje zhodovať môžu). Dáta sú z kartovej hry bridž, z wirelles servera zvaného bridgemate, ktorý sa používa na posielanie výsledkov z jednotlivych hracích stolov za účelom ich evidencie a výpočtu celkového poradia hráčov.
Valej
Profil
Kajman:
Ľutujem, ale nie je jasné, ako to môže fungovať (druhé if malo asi mať ako prvú podmienku A=2). Za riadkom s hodnotou A=1 totiž musí vždy nasledovať riadok s hodnotou A=2, pričom stĺpce B a C majú prehodené hodnoty, takže nestačí len obecné triedenie podľa týchto stĺpcov, musí to byť triedené podľa konkrétnych hodnôt predošlého riadku v prípade, že A=1. A tieto dvojice údajov sa striedajú až do vyčerpania všetkých možností.
Kajman
Profil
Valej:
ale nie je jasné, ako to môže fungovať

Řadí to podle (B pro jedničky, C pro ostatní), pokud jsou stejné hodnoty, tak podle (C pro jedničky, B pro ostatní), pokud jsou stejné i ty, tak podle A.

Zkoušel jste to vůbec?
Valej
Profil
Kajman:
No práve že skúšal, ale neúspešne. Teraz som to teda vyskúšal ešte raz. Ospravedlňujem sa, funguje to bezchybne. Síce stále tomu úplne nerozumiem, ale deň je ešte dlhý :).

Ďakujem.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: