שאלת SQL

  • פותח הנושא uyt2
  • פורסם בתאריך

uyt2

New member
שאלת SQL

יש לי אוסף רשומות שלכל אחת עדיפות - ערך שלם בין 1 ל- 5 אני רוצה לקבל את הרשימה ממויינת לפי עדיפות מהקטן לגדול אבל שהרשומות בעלות אותה עדיפות יופיעו בסדר אקראי. האם יש נוסח שמתאים לכל בסיסי הנתונים (עדיין לא ברור במה אשתמש, וזה יכול גם להשתנות בהמשך)? תודה
 

stig2

New member
באורקל

SELECT id, priority FROM table ORDER BY priority, DBMS_RANDOM.VALUE;​
זה ממיין את הרשומות לפי עדיפות ואת עמודת ID בסדר אקראי.
 

pitoach

New member
הרעיון דומה גם בשרתים האחרים בעקרון

מה שאתה צריך זה למיין תחילה לפי עמודת ה ID ובשלב השני לפי העמודה הרנדומלית שלך order by ID,RandomField ההבדל היחיד בין השרתים הוא בשלב של יצירת העמוד הרנדומלית בקישור הבא תוכל לראות פתרון לכל השרתים ולכל המסדי נתונים הנפוצים (אם שכחתי שרת או מסד נתונים אשמח להוסיף אליו פתרון אבל אני ושב שכיסתי כל מה שחשוב): * בחירת רשומה אקראית מטבלה http://ariely.info/dnn/Blog/tabid/83/EntryId/31/Select-a-random-row-from-table.aspx הקישורים הבאים הם באותו נושא וכדאי לעבור עליהם. שלושת הקישורים ביחד אמורים לתת לך פתרון מלא והבנה לבעיה * כיצד לאפשר דפדוף (חלוקת הרשומות לדפים ומעבר בין הדפים) כאשר אנו רוצים לקבל את הרשומות בסדר אקראי? http://ariely.info/dnn/Blog/tabid/8...ough-Recordsets-that-are-in-random-order.aspx * שליפת רשומות בסדר אקראי http://ariely.info/dnn/Blog/tabid/83/EntryId/57/Select-records-in-random-order.aspx
 

pitoach

New member
תיקון קטנטן

אם היית מצרף DDL והיינו יודעים את מבנה הטבלאות שלך היה יותר קל להבין ולהסביר כשכתבתי בשלב ראשון למיין לפי ID התכוונתי לפי העמודה של הדירוג. priority במקרה של התגובה הקודמת שקיבלת בקיצור זה כאמור זהה בכל השרתים מבחינת החלק הזה. אני מקווה שההסבר מספיק מובן
 
למעלה