שדה מחושב ב SQL

שדה מחושב ב SQL

שלום חברים האם אפשרי באמצעות SQL ליצור שדה חדש שהערך שלו הינו מס´ הרשומה זאת אומרת שבשרשומה מס´ 1 הערך של השדה יהיה 1 וכן הלאה ? תודה
 
מה ? אין לכם תשובה ../images/Emo92.gif

מה ? אין לכם תשובה
 

זהר פלד

New member
הממ..

למה לעשות את זה ב SQL? אם אתה מקבל מספר רשומות אתה במילא תרוץ עליהם בלולאה, לא? מה יותר פשוט ויעיל מ counter שיספור את הריצה של הלולאה?
 

אלון_פ

New member
הבעיה

הבעיה היא שמה שאתה מבקש מנוגד קצת לתאוריה העומדת מאחורי בסיסי נתונים רלציונים. בתאוריה זו (המבוססת על תורת הקבוצות) אין משמעות לסדר האלמנטים בקבוצה -כלומר לסדר הרשומות בטבלה.
 

אלון_פ

New member
פתרון חלקי:

בכל זאת חשבתי על זה קצת - אם יש לך אזשהו שדה כמותי חד ערכי המאפשר לסדר את הרשומות בסדר עולה ניתן למספר את הרשומות באופן הבא: נניח שהשדה הכמותי הוא DT המייצג תאריך ארוך לדוגמא אזי התוצאה הבאה תיתן שדה ממוספר
Select * , (select Count(*) from Table1 Where table1.DT <= T.DT) as Numerator from Table1 as T order by DT​
 

eli_leiba

New member
ב oracle יש ROWNUM

שהוא pseudo-column שבכל שליפה כל שורה מקבלת ערך רץ ב sql server ניתן גם לבצע ע"י יצירת טבלה זמנית בעלת שדה identity (1,1 להכניס את תוצאות השאילתא לטבלה ולשלוף select * from הטבלה
 
למעלה