Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem MSSQL select

Estli dobře rozumím popisu,tak problém není s návrhem databáze ani vkládání hodnot,ale s získáváním dat a nějakým výpočtem skóre. A dilema je , jak udělat bussines logiku, jestli to počítat rovnou v databázi (hodí se, pokud tohle je jenom část problému, následuje další zpracování, řazení, filtrování...) nebo získat z databáze čistá data a tu logiku udělat v neznámém programovacím jazyce(python?)?
Jako ono by šlo tu logiku narvat do sql dotazu, . napadá mě COALESCE(kod1,kod2) (ne idiotské case switch, i to existuje v sql) ... Ale jsou oba kódy rovnocenné z hlediska dalšího zpracování? A nebo pokud to chceš vyšperkovat, můžeš si přidat sloupec kod_switch a potom použít ten switch kod_switch kde vybereš který sloupec to má vrátit. Může se to hodit, když bude potřeba právě mít uložené obě kody, ale volit si zaměřovačem, jaký kod u každého id

CT 
    CASE 
        WHEN column_b = 'some_value' THEN column_c
        ELSE column_d
    END AS result_column
FROM your_table;

Koukám, že si dal ukázku, kde máš 2x c ,jednou s kódem 1(2), potom s kódem 2(10). To je jedna možnost.Druhá možnost je mít právě strukturu {id,kod1,kod2}. Jsou situace, kdy jedno řešení může být lepší,ale volil bych dva sloupce, už jen ,že můžeš definovat kod1=datový typ enum(1,2,három,3), 2=enum(10,20,ps,wtf), ale pak zase budeš mít v resultu (select id,kod_mix) smíchaný typy něco jako enum1 +enum2, což ani nevím jestli jde, prrávě proto možná místo enum použít string

ale třeba je to vymyšlené, že vše běží v SQL? potom první dilema je jasné

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny