Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Generera resultset med 10 slumpade tal

Postades av 2007-06-12 16:04:07 - Per Hultqvist, i forum sql-server/msde, Tråden har 3 Kommentarer och lästs av 1171 personer

Hur gör man för att med en enda SQL-sats skapa ett resultset med t ex 10 st slumpade tal? Det är allstå inte slumpandet som är problemet utan hur man skapar en lista med talen (utan att använda en loop eller temptabell) så att jag kan joina mot denna. Gärna SQL2005-syntax om det hjälper...går det?

Skapa ett slumptal är ju enkelt :
<code>
select floor(rand()*100)
</code>

Som ett exempel kan jag ju nämna att jag testade mest för skojs skull att köra så här
<code>
select top 10 floor(rand()*100) as random from [mytable]
</code>
där MyTable är en valfri tabell med minst 10 poster, och visst fick jag tio rader, men alla innehåller alltid samma slumptal så RAND() körs bara en gång.

Det här är säkert jätteenkelt, möjligen på gränsen till pinsamt enkelt :-)


Svara

Sv: Generera resultset med 10 slumpade tal

Postades av 2007-06-13 08:17:37 - Johan Djupmarker

Borde fungera med:

select top 10 floor(rand(mytable.unikt_fält_i_mytable)*100) as random from [mytable]

Kanske även kan fungera med:

select floor(rand()*100)
union all select floor(rand()*100)
union all select floor(rand()*100)
osv

/Johan


Svara

Sv:Generera resultset med 10 slumpade tal

Postades av 2007-06-13 08:53:05 - Per Hultqvist

Johan:

Första exemplet ger samma resultat som mitt tidigare, nämligen en lista med tio tal (korrekt) men alla tal är identiska.

Andra exemplet fungerar inte, eftersom siffran 10 var tagen ut luften, man måste kunna välja hur många slumptal som skall skapas. Jag glömde nämna det i förutsättningarna, sorry...


Svara

Sv: Generera resultset med 10 slumpade tal

Postades av 2007-06-13 10:03:35 - Johan Djupmarker

Jag testade och det fungerar när det skiljer mycket mellan talen man stoppar in (jag multilicerade talen 10-20 med 10000).

MEN, jag läste sedan dokumentationen och såg att ett visst tal man använder som seed till rand alltid ger samma resultat, så det är ingen bra lösning. Det går givetvis att komma runt genom att multiplicera med rand() eller t.ex. tiden då frågan körs, men det känns inte helt perfekt. Så tyvärr har jag ingen bra lösning.

/Johan


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 616
27 953
271 709
5 782
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies