---
title: "Random ur Sql"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/138199-random-ur-sql"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Boorg"
published: "2005-11-24T19:46:15.000Z"
updated: "2005-11-24T23:36:22.000Z"
replies: 8
views: 361
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/138199-random-ur-sql"
---

# Random ur Sql

## #1 — Boorg, 2005-11-24T19:46Z

Hej.

Har en Sql sträng som ser ut såhär:

```
Select DISTINCT a.name as n, a.created_on as c, b.Url as Url From photo a Left Join select_photo b on a.id = b.photo_id Order By a.created_on
```

Jag har ett bildgalleri där jag loopar ut den första bilden i varje galleri. Men nu vill jag ha så att den loopar ut en random bild som tillhör samma photo_id..
förstår ni? :)

Mvh Jesper borg

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

## #2 — Boorg, 2005-11-24T20:22Z

```
Order By rnd(b.id)
```

får felmedelandet att:
Microsoft JET Database Engine (0x80004005)
ORDER BY-instruktionen (rnd(b.id)) stämmer inte med DISTINCT.

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

## #3 — emission, 2005-11-24T20:30Z

Om man kör DISTINCT så måste ORDER-kolumnerna finnas med i SELECT:en.

Kör du ASP?

<http://www.webforum.nu/showthread.php?p=1112611#post1112611>

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

## #4 — Boorg, 2005-11-24T20:49Z

ja jag kör asp.

```
	Randomize
	seed = (CInt(1000 * Rnd) + 1) * -1

		Sql = "Select DISTINCT a.name as n, a.created_on as o, mid(MAX(left(cstr(int(9000*rnd(b.id*" & seed & ")+1000)),4) + b.Url),5) as Url From photo a Left Join select_photo b on a.id = b.photo_id Order By a.created_on "
```

Får massa fel nu men inte på det?

Den gillar inte att jag har as n och as o. Ser inget fel i Sql satesn som den va, har bara lagt till det som du gav mig.

Medelande:
Microsoft JET Database Engine (0x80040E21)
Du försökte köra en fråga med en mängdfunktion som inte innehöll det angivna uttrycket 'n'.

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

## #5 — LarsG, 2005-11-24T21:00Z

```
Select a.name as n, 
       a.created_on as c, 
       b.Url  
From photo a Left Join select_photo b 
  on a.id = b.photo_id 
 where url in 
  (select top 1 url 
     from select_photo c
    where c.photo_id = b.photo_id
  Order By rnd(<frö>))
```

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

## #6 — emission, 2005-11-24T21:19Z

Du kan inte köra DISTINCT, utan måste använda GROUP BY

```
Randomize
seed = (CInt(1000 * Rnd) + 1) * -1
Sql = "Select a.name as n, a.created_on as o, mid(MAX(left(cstr(int(9000*rnd(b.id*" & seed & ")+1000)),4) + b.Url),5) as Url From photo a Left Join select_photo b on a.id = b.photo_id Group By a.name,a.created_on Order By a.created_on "
```

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

## #7 — Boorg, 2005-11-24T21:32Z

Nu fungerar det bättre =)

Va tvungen att ändra url från Pm till text, men nu gillar den inte null någonstans. Men det finns itne null någondstans... kan det ha något o göra med koden som du gav?

Microsoft JET Database Engine (0x80040E14)
Ogiltigt Null

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

## #8 — emission, 2005-11-24T23:20Z

Det beror på LEFT-joinen. Skulle dock föreslå LarsG:s variant i stället. Det föll mig aldrig in att ta med b.photo_id i IN-satsen. 

Sammantaget, med två smärre modifikationer av LarsG:s variant

```
Randomize
seed = (CInt(1000 * Rnd) + 1) * -1
Sql = "SELECT a.name AS n, a.created_on AS c, b.Url FROM photo a LEFT JOIN select_photo b ON a.id = b.photo_id WHERE url in (SELECT top 1 url FROM select_photo c WHERE c.photo_id = a.id ORDER BY rnd(" & seed & "*[b]c.id[/b])) [b]OR url is null[/b] ORDER BY a.created_on"
```

Modifieringarna är införandet av en faktor (b.id, där jag antagit att du har ett id på själva bilden) för att få rnd-funktionen att variera, och en "OR url is null", som jag tog med eftersom din LEFT-join indikerade att du även ville ha med gallerier som saknar bilder.

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

## #9 — Boorg, 2005-11-24T23:36Z

Tackar hjärtligt   :bire

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/138199-random-ur-sql
