webForumDet fria alternativet

WHERE IF Collumn

10 svar · 326 visningar · startad av Glitter

GlitterMedlem sedan juli 2003442 inlägg
#1

Går det på något sätt att if:a eller köra en case i en whare sats ex:

SELECT *FROM tabell
WHERE id = '1' AND
IF datum > '2004-05-17' AND datum < '2004-05-20' then
datum > '2004-05-19'
END
ORDER BY ID

Altså när datum är imellan 17 och 20 då skall den hämta datumet 19...

@ndersMedlem sedan juni 200026 914 inlägg
#2

Where styr ju bara vilka poster du ska hämta, inte vilka värden du ska hämta. I SELECT kan du bestämma det du frågar efter, men det vore finfint om du kunde upplysa oss om vilken dbms du använder, så vi slipper gissa.

SELECT fält1, fält2, CASE WHEN datum BETWEEN '2004-05-17' AND '2004-05-20' THEN '2004-05-19' ELSE datum END AS datum FROM tabell WHERE... ORDER BY...
GlitterMedlem sedan juli 2003442 inlägg
#3

Jag kör SQL 2000 server

men jag skall hämta ut alla datum som är större än 2004-05-19
i mitt ex så skrev jag la lite knasigt men det kan vara fler än ett datum...

LarsGMedlem sedan dec. 200012 465 inlägg
#4

Jag fattar ingenting. Kan du exemplifiera med datainnehåll och förväntat resultat?

GlitterMedlem sedan juli 2003442 inlägg
#5

Jag vill bara veta om man kan köra en dynamisk WHERE sats:
om datum är imellan '2004-05-17' och '2004-05-20' så vill jag att datum skall vara större än 2004-05-18

ungefär såhär:

bla bla 
WHERE
IF datum BEETWEN '2004-05-17' AND '2004-05-20' THEN
   Datum > '2004-05-18'
END

inputen är oviktig...
det är funktionen jag är ute efter

LarsGMedlem sedan dec. 200012 465 inlägg
#6

Jag förstår inte vad som skulle vara dynamiskt. Så vitt jag kan se säger du bara att du inte vill ha värden där datum är 17/5 eller 18/5 dvs

where datum not in ('2004-05-17','2004-05-18')
GlitterMedlem sedan juli 2003442 inlägg
#7

om collumen uppfyller vissa kriterier då skall en where sats skapas

SELECT * FROM tabell
IF datum = '2004-05-19' THEN
  where datum = '2004-05-20' AND id = '1'
ELSE
  where id = '1'
END
ORDER BY collumn

Det verkar inte som det går att ifa efter "FROM tabell" och case verkar inte heller fungera om jag inte gör fel...

kanske dåligt exempel med datum ?

@ndersMedlem sedan juni 200026 914 inlägg
#8

Jag kan inte för mitt liv förstå vad du är ute efter. Strunta i SQL och försök beskriva vad du vill ha istället.

GlitterMedlem sedan juli 2003442 inlägg
#9

okey tänk en if sats i mitten av en where
om en collumn uppfyller ett kriteria i detta fallet 2004-05-19 så skall ett annat kriteria upfyllas 2004-05-20 och inte det andra som man kollade med altså 2004-05-19

altså
if bla = 'aa' then
aaaa = 'cc'
end

hoppas ni förstår

@ndersMedlem sedan juni 200026 914 inlägg
#10
WHERE (villkor1 and villkor2) OR villkor3

Eller :q

GlitterMedlem sedan juli 2003442 inlägg
#11

om villkor 1 & 2 uppfylls så skall villkor 3 uppfyllas i frågan men villkor 1 & 2 skall inte påverka resultatet

Genererad på 378 ms · cache AV · v20260730165559-full.f96bc7eb