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 น.
Counter : 694 Pageviews.

0 comments
แจกภาพปฏิทินประจำวัน ครั้งที่ 6 (8-14 กรกฎาคม 2568) ทองกาญจนา
(7 ก.ค. 2568 10:55:35 น.)
เปลี่ยนยางมอไซต์ PCX (เปลี่ยนวันที่ 15 พฤษภาคม 2568) Emmy Journey พากิน พาเที่ยว
(27 มิ.ย. 2568 13:54:58 น.)
ชุดชามสัมผัส PCX แตก (เปลี่ยนวันที่ 8 มีนาคม 2568) Emmy Journey พากิน พาเที่ยว
(26 มิ.ย. 2568 16:20:19 น.)
หวีไฟฟ้าพกพา เสน่ห์แห่งเรือนผมพลิ้วไหวในทุกที่ ทุกเวลา ที่คุณคู่ควร สมาชิกหมายเลข 6675832
(2 มิ.ย. 2568 00:18:56 น.)
ชื่อ :
Comment :
 *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 

Chaowman.BlogGang.com

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

[ดู Profile ทั้งหมด]
 ผู้ติดตามบล็อก : 8 คน [?]