---
title: "Minsta skillnaden"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/97468-minsta-skillnaden"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "OveRRidE"
published: "2004-02-16T11:09:03.000Z"
updated: "2004-02-16T13:31:27.000Z"
replies: 6
views: 260
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/97468-minsta-skillnaden"
---

# Minsta skillnaden

## #1 — OveRRidE, 2004-02-16T11:09Z

Jag behöver välja ut minsta skillnaden mellan värdet på ett antal rader och en värde som jag skickar in i SQL:en. 

Hur gör jag detta? 

Värdena i tabellen kan vara t.ex. 0, 1, -1 och -2. Värdet som skickas in kan vara antingen samma summa, mer eller mindre än någon av ovan värden. 

MSSQL Server 7.

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

## #2 — @nders, 2004-02-16T11:13Z

Jag hade provat typ så här:

```
SELECT fld-[b]2[/b] as diff, * FROM tabellen ORDER BY diff
```

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

## #3 — OveRRidE, 2004-02-16T11:15Z

Nja, jag vill alltså ha den rad där skillnaden är *minst* av de som finns.

RED. Eller funkar det så? :q Nja..

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

## #4 — @nders, 2004-02-16T11:16Z

Jag är rädd att jag inte förstår vad du är ute efter.

Mvh

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

## #5 — OveRRidE, 2004-02-16T11:19Z

Ok, förtydligande. :)

Tabell:

```
[b]decade | value[/b]
-2 | milliliter
-1 | centiliter
0 | deciliter
1 | liter
```

Jag skickar in värdet -3. Då vill jag alltså ha tillbaks -2 och milliliter. Skickar jag in värdet 3 vill jag ha tillbaks 1 och liter. Skickar jag in värdet 0 vill jag har tillbaks 0 och deciliter.

Gör detta det lättare? :D

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

## #6 — Rikard, 2004-02-16T11:36Z

En vansinnestanke och som jag dessutom misstänker är lite prestandaseg...

```
SELECT TOP 1 decade, value, abs([input] - decade) AS diff 
FROM Tabell
ORDER BY diff ASC
```

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

## #7 — OveRRidE, 2004-02-16T13:31Z

Ok, efter mycket om och men valde jag en lite annorlunda approach. :)

```
SELECT TOP 1 * FROM table
ORDER BY ABS(US_Decade-[input_value])
```

Tack för hjälpen med tänket! :D

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/97468-minsta-skillnaden
