Just algorithm!
Sql - สร้าง Random number ใน Sql

ปกติเราใช้ Function RAND() เพื่อสร้าง Random number
แต่ RAND() มีปัญหาอย่างหนึ่ง คือ มันไม่สามารถสร้าง Random number ในทุก ๆ บรรทัดของ Query ได้
เช่น
  1. select RAND()
  2. from Table1
จะได้ผลลัพธ์เป็น
  1. ----------------------
  2. 0.743651588693238
  3. 0.743651588693238
  4. 0.743651588693238
  5. 0.743651588693238
  6. 0.743651588693238
จะเห็นว่าตัวเลขในแต่ละบรรทัดเหมือนกันหมด

วิธีแก้คือให้ใช้ Function NEWID() ครับ
ซึ่ง NEWID จะได้ค่าที่ Random จริงแต่ต้องแปลงเป็นตัวเลขก่อน
เขียนอย่างนี้ครับ
  1. select ABS(CONVERT(binary(4),NEWID()) % 1000)
  2. from Table1
แทนค่า 1000 ด้วย Maximum Number ที่เราต้องการ
ซึ่งถ้าใส่ 1000 จะได้ผลลัพธ์ตั้งแต่ 0-999

ผลลัพธ์จากการ Run เป็นดังนี้ครับ
  1. -----------
  2. 744
  3. 721
  4. 297
  5. 74
  6. 685



Create Date : 24 กรกฎาคม 2553
Last Update : 10 พฤศจิกายน 2557 21:02:44 น. 0 comments
Counter : 516 Pageviews.

ชื่อ :
Comment :
  *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 

chaowman
Location :
กรุงเทพฯ Thailand

[Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 8 คน [?]





New Comments
Group Blog
 
All Blogs
 
Friends' blogs
[Add chaowman's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.