omar-alreyati بتاريخ: 14 نوفمبر 2005 تقديم بلاغ مشاركة بتاريخ: 14 نوفمبر 2005 اتمنى منكم ان تجيبوني على استفساري الوحيد وهو لماذا هنا يريد تريتب النتائج بناءاً على ايام الاسبوع ويبدأ الاسبوع مكن يوم الاثنين لكنه وضع الصيغة الاتيى في الترتيب TO_CHAR(hire_date - 1, ’d’); ، سؤالي ما الفائدة من وضع hire_date - 1Display the last name, hire date, and day of the week on which the employee started. Labelthe column DAY. Order the results by the day of the week starting with Monday.SELECT last_name, hire_date,TO_CHAR(hire_date, ’DAY’) DAYFROM employeesORDER BY TO_CHAR(hire_date - 1, ’d’); اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أسامة موسى بتاريخ: 14 نوفمبر 2005 تقديم بلاغ مشاركة بتاريخ: 14 نوفمبر 2005 الاخ الكريمطبعا كما هو معلوم ان بداية الايام هو يوم الاحد ويرمز له بالرقم واحد حيث المقصود ب to_char(hiredate,'d') هو ترتيب اليوميعني لو قلناله select to_char(hiredate,'day'),to_char(hiredate,'d') from empمثلاسوف يطلع النتج التاليsunday 1monday 2وهكذا لذلك اذا اردت ان يبدا بترتيب الايام من يوم الاثنين فتقول له ان ينقص واحد لو فرضنا انك تريد ان تجعل بداية الترتيب من يوم الثلاثاء تقول له ناقص 2وهكذااليك مثال SQL> SELECT ename, 2 hiredate, 3 TO_CHAR (hiredate, 'DAY') day, 4 DECODE (TO_CHAR (hiredate, 'D') - 1, 0, 7, TO_CHAR (hiredate, 'D') - 1) day2 5 FROM emp 6 ORDER BY DECODE (TO_CHAR (hiredate, 'D') - 1, 0, 7, TO_CHAR (hiredate, 'D') - 1) 7 / ENAME HIREDATE DAY DAY2 ---------- --------- --------- ---------- MARTIN 28-SEP-81 MONDAY 1 CLARK 09-JUN-81 TUESDAY 2 KING 17-NOV-81 TUESDAY 2 TURNER 08-SEP-81 TUESDAY 2 SMITH 17-DEC-80 WEDNESDAY 3 ADAMS 12-JAN-83 WEDNESDAY 3 JONES 02-APR-81 THURSDAY 4 FORD 03-DEC-81 THURSDAY 4 SCOTT 09-DEC-82 THURSDAY 4 JAMES 03-DEC-81 THURSDAY 4 ALLEN 20-FEB-81 FRIDAY 5 BLAKE 01-MAY-81 FRIDAY 5 MILLER 23-JAN-82 SATURDAY 6 WARD 22-FEB-81 SUNDAY 7 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.