---
title: "Konstigt problem med villkor"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/182925-konstigt-problem-med-villkor"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Pedda"
published: "2010-03-23T13:24:06.000Z"
updated: "2010-03-23T13:57:51.000Z"
replies: 7
views: 544
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/182925-konstigt-problem-med-villkor"
---

# Konstigt problem med villkor

## #1 — Pedda, 2010-03-23T13:24Z

Har ett mystiskt fel på en SQL fråga.
Databasen är Access 2003.

Villkoret

```
WHERE r.ref_hardware = 7 AND (f.engine = '' OR f.engine = 'Diesel')
```

returnerar bara dom rader där engine är Diesel, inte några där engine saknar värde.

Samma villkor, men på en annat fält

```
WHERE r.ref_hardware = 7 AND (f.rpm = '' OR f.rpm = 'VRPM')
```

returnerar både tomma fält och där värdet är VRPM.

Båda fälten i databasen är av samma data typ mm.

Fattar inte varför jag får olika resultat. Men förhoppningsvis förstår någon av er varför.

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

## #2 — nitro2k01, 2010-03-23T13:30Z

Kanske en uppenbar fråga, men är du säker på att et finns rader som har både ref_hardware = 7 och engine = ''? Ibland är det de mest uppenbara sakerna som felar.
Edit: Kan det vara så att f.engine är satt till null (eller ' ' eller dylikt) istället för '' på raderna ifråga?

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

## #3 — Pedda, 2010-03-23T13:35Z

japp, helt säker.

Gör jag den andra sökningen på 'rpm' så har jag resultat därifrån där engine är tom.

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

## #4 — nitro2k01, 2010-03-23T13:36Z

Om du söker på **r.ref_hardware = 7 AND f.engine = ''** eller t.o.m. bara **f.engine = ''**? (För att luska ut exakt vad som felar.)

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

## #5 — Pedda, 2010-03-23T13:46Z

Båda försöken returnerar ingenting

Bifogar screenshot från Access

Bilagor:

- [access.png](https://www.webforum.nu/a/21460.png)

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

## #6 — @nders, 2010-03-23T13:47Z

Jag är nog lite inne på nitros NULL-spår.

Testa:

```
WHERE r.ref_hardware = 7 AND (f.engine = '' OR f.engine IS NULL OR f.engine = 'Diesel')
```

mvh

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

## #7 — Pedda, 2010-03-23T13:54Z

Nu har vi kommit närmare.

Kolla engine med IS NULL funkar.

men...

rpm funkar inte med IS NULL, utan jag måste använda = ''

Så någon skillnad är det mellan fälten.

/red
Men jag kan ju köra med snabelns förslag att kolla både '' och IS NULL på fälten så är det löst

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

## #8 — @nders, 2010-03-23T13:57Z

tja, funkar det med '' så är det lagrat en tom sträng i fältet - funkar det med is null så är det lagrat som NULL i fältet. Så finns båda alternativen så får du kolla mot båda - om dessa båda skall hanteras likadant.

Mvh

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/182925-konstigt-problem-med-villkor
