---
title: "WHERE IF Collumn"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/103898-where-if-collumn"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Glitter"
published: "2004-05-19T09:27:54.000Z"
updated: "2004-05-24T06:43:39.000Z"
replies: 10
views: 347
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/103898-where-if-collumn"
---

# WHERE IF Collumn

## #1 — Glitter, 2004-05-19T09:27Z

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...

Permalänk: https://www.webforum.nu/p/103898

## #2 — @nders, 2004-05-19T09:46Z

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...
```

Permalänk: https://www.webforum.nu/p/1350950

## #3 — Glitter, 2004-05-19T11:18Z

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...

Permalänk: https://www.webforum.nu/p/1351014

## #4 — LarsG, 2004-05-19T11:23Z

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

Permalänk: https://www.webforum.nu/p/1351016

## #5 — Glitter, 2004-05-19T11:39Z

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

Permalänk: https://www.webforum.nu/p/1351024

## #6 — LarsG, 2004-05-19T13:46Z

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')
```

Permalänk: https://www.webforum.nu/p/1351121

## #7 — Glitter, 2004-05-19T14:45Z

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 ?

Permalänk: https://www.webforum.nu/p/1351161

## #8 — @nders, 2004-05-19T14:48Z

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.

Permalänk: https://www.webforum.nu/p/1351164

## #9 — Glitter, 2004-05-19T14:58Z

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

Permalänk: https://www.webforum.nu/p/1351168

## #10 — @nders, 2004-05-19T15:07Z

```
WHERE (villkor1 and villkor2) OR villkor3
```

Eller :q

Permalänk: https://www.webforum.nu/p/1351171

## #11 — Glitter, 2004-05-24T06:43Z

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

Permalänk: https://www.webforum.nu/p/1352985

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/103898-where-if-collumn
