Autor Téma: Opakovaný výraz, alebo subselect? Čo je vhodnejšie?  (Přečteno 1739 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Opakovaný výraz
Kód: [Vybrat]
SELECT CASE... / COSI, A.FIELD2, CASE... * NIECO, A.FIELDN
FROM TABLE1 A....
Použitie subselectu
Kód: [Vybrat]
SELECT B.FIELD1 / COSI,  A.FIELD2, B.FIELD1 * NIECO, A.FIELDN
FROM TABLE1 A ...
  INNER JOIN
    (SELECT CASE
      FROM TABLE1 ...) B ON (... = ...)
Ja sa prikláňam k subselectu. Živočíšne predpokladám, že viacnásobné vyhodnocovanie tej istej podmienky je náročnejšie než použitie subselectu.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2579
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Opakovaný výraz, alebo subselect? Čo je vhodnejšie?
« Odpověď #1 kdy: 01-02-2018, 09:06:12 »
Opakovaný výraz
Kód: [Vybrat]
SELECT CASE... / COSI, A.FIELD2, CASE... * NIECO, A.FIELDN
FROM TABLE1 A....
Tomu mam rozumet tak, ze na strane klienta udelas iteraci a v kazdem pruchodu spustis SELECT? Pokud ano, tak to pravdepodobne bude horsi min. kvuli dopravnim zpozdenim pri komunikaci s DB. Ale pokud by to bylo v SP, tak uz bych to zkusil a zmeril.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Opakovaný výraz, alebo subselect? Čo je vhodnejšie?
« Odpověď #2 kdy: 01-02-2018, 09:15:42 »
Citace
Tomu mam rozumet tak, ze na strane klienta udelas iteraci a v kazdem pruchodu spustis SELECT?
Nie, to SQL spúšťam len jediný raz. Ten Select je výberová množina pre "INSERT INTO ... SELECT ..." Cyklom sa vyhýbam ako sa len dá.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.