Új hozzászólás Aktív témák

  • bpx

    őstag

    válasz kisbandima #1163 üzenetére

    egyrészt, ha bind változókat használsz, ez így is csak annyi SQL, ahány esetet a feltételek megadása/meg nem adása eredményez
    de ha minden esetet egy SQL utasítással akarsz kezelni, ám legyen

    MSSQL-t nem ismerem, szóval ez amolyan pszeudokód lesz :D

    SELECT oszlop1, oszlop2
    FROM tabla
    WHERE datum > NVL(:B1, MINDATE)
    AND datum < NVL(:B2, MAXDATE)
    AND osszeg > NVL(:B3, 0)
    AND osszeg < NVL(:B4, INT.MAXVALUE);

    B1-B4 bind változók, ami user input
    ha a user nem ad meg semmit, akkor NULL-t adsz be neki
    az NVL arra való, hogy ha az első paramétere NULL, akkor kicseréli a másodikra

    tehát ha a user nem ad meg felső határt a dátumra, akkor a NULL-t kicseréli az NVL a lehetséges legnagyobb dátumra
    ha a user nem ad meg alsó határt az összegre, akkor kicseréli 0-ra
    és így tovább...

    ha meg linq vagy ilyesmi, abban nem vagyok otthon (sajnos)

    [ Szerkesztve ]

Új hozzászólás Aktív témák