إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

سؤال بسيط جداً في SQL


1 رد (ردود) على هذا الموضوع

#1 omar-alreyati

omar-alreyati

    عضو مميز

  • الأعضــاء
  • 596 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 14 November 2005 - 03:06 PM

اتمنى منكم ان تجيبوني على استفساري الوحيد وهو لماذا هنا يريد تريتب النتائج بناءاً على ايام الاسبوع ويبدأ الاسبوع مكن يوم الاثنين لكنه وضع الصيغة الاتيى في الترتيب
TO_CHAR(hire_date - 1, ’d’); ، سؤالي ما الفائدة من وضع hire_date - 1



Display the last name, hire date, and day of the week on which the employee started. Label
the column DAY. Order the results by the day of the week starting with Monday.
SELECT last_name, hire_date,
TO_CHAR(hire_date, ’DAY’) DAY
FROM employees
ORDER BY TO_CHAR(hire_date - 1, ’d’);

بالله عليكم لا تنسوني من دعاءكم الصالح
لا تنسوا أهل غزة والعراق والمجاهدين من دعاءكم

#2 أسامة موسى

أسامة موسى

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 2,381 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 14 November 2005 - 03:43 PM

الاخ الكريم
طبعا كما هو معلوم ان بداية الايام هو يوم الاحد ويرمز له بالرقم واحد حيث المقصود ب to_char(hiredate,'d') هو ترتيب اليوم
يعني لو قلناله
select to_char(hiredate,'day'),to_char(hiredate,'d') from emp
مثلا
سوف يطلع النتج التالي

sunday 1
monday 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

۩ اللهـــــــــــــــــــــــم صلي على سيدنا محمد وعلـى آله وصحبه أجمـعين ۩
۩ سبحـــــــــــــــــان الله وبحمده ....... سبحــــــــــــــــــــــــان الله العظيم ۩



يمكنك زيارتي على صفحتي الخاصة بالفيس بوك على الرابط AskOsama

يمكنك زيارتي على مدونتي الجديدة على الرابط http://askossama.blogspot.com