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

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

صورة
- - - - -

سؤال في بعض function الsql


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

#1 omar-alreyati

omar-alreyati

    عضو مميز

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

تاريخ المشاركة 01 February 2006 - 10:57 AM

الاخوة الاعزاء: بعد التحية الطيبة لكم.

ارغب في معرفة بعض الباراميتر في الfunction الاتية:

اولاً: INSTR والتي تكون بالشكل الاتي :
INSTR(x, find_string [, start] [, occurrence])
ارغب في معرفة ما هي start & occurrence وما الفائدة من استخدامها

ثانياً: LPAD والتي تكون بالشكل الاتي :
LPAD(x, width [, pad_string])
ارغب بمعرفة فائدة pad_string

مع الشرح ان امكن بالأمثلة ليتضح الامر اكثر


وانا بانتظاركم وشكراً.

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

#2 أسامة موسى

أسامة موسى

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

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

تاريخ المشاركة 01 February 2006 - 03:36 PM

الأخ الكريم

INSTR(x, find_string [, start] [, occurrence])
هذه الفانكشن هي عبارة عن ايجاد موقع حرف مثلا في كلمة معينة ويرجع لك قيمة رقمية فاذا وجد الرقم ارجع موقع الحرف واذا لم يجده يرجع الرقم صفر

SELECT INSTR('Admin05','A') from dual
INSTR('ADMIN05','A')
--------------------
                   1
طبعا في طرق في البحث يعني اذا اردت ان تبحث في كلمة Admin05 ولكن ان يبدأ من الحرف m
يعني يكون الموقع الثالث هو البداية نكتبها بالشكل التالي

 1* SELECT INSTR('Admin05','m','3') from dual

INSTR('ADMIN05','M','3')
------------------------
                       3
حيث تحدد بالبداية الحرف والموقع المراد البداية منه

LPAD
هي عملية قطع كلمة بنهاية الكلمة حيث تحدد له البداية والنهاية

 1* SELECT lpad('Admin05','3') from dual

LPA
---
Adm

ملاحظة يستفاد من instr في عملية ايجدا الحرف لنفرض انه جاءك سؤال يقول اقطع اسماء الموظفين اللذين يحتوي اسمهم على حرف a
لنفرض انه يوجد كم هائل من البيانات لذلك لن تعرف كل اسم ماهو ترتيب الحرف a
لذلك يكون القطع بالشكل التالي
Select  lpad(employee_name,instr(employee_name,'a')) from employees

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



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

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

#3 أحمد مبارك الحيقي

أحمد مبارك الحيقي

    عضو

  • الأعضــاء
  • 9 مشاركة

تاريخ المشاركة 04 February 2006 - 01:42 AM

PAD تأتي بمعنى ملء الفراغ أو الحشو... و L ترمز لجهة اليسار LEFT...
هذه الدالة تأخذ ثلاثة معاملات:
1. سلسلة حرفية (string)، مثلاً omar.
2. عدد يمثل العرض (عدد الخانات) التي تريد أن تظهر بها السلسلة الحرفية السابقة، مثلاً 10.
3. حرف أو أكثر (كسلسلة حرفية) يستخدم في حشو الفراغ على يسار omar إن كان هناك فراغ. والفراغ يأتي من الفرق بين العدد المحدد في المعامل الثاني (10)وبين الطول الفعلي للسلسلة الحرفية في المعامل الأول (omar) وهو هنا 10-4=6.
مثال:
;SQL> SELECT LPAD('OMAR', 10, '*') FROM DUAL
الناتج يعطي
OMAR******


بالمناسبة، RPAD تقوم بنفس العمل، ولكن الحشو يتم من اليمين... والله أعلم.

تم التعديل بواسطة Amgad, 16 May 2008 - 08:05 PM.


#4 أسامة موسى

أسامة موسى

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

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

تاريخ المشاركة 04 February 2006 - 08:41 AM

الاخ الكريم
هي منطقية عمل lpad كما تفضلت ولكن اذا اردت الاضافة مثلا بدون وضع كيفية الاضافة فتعمل الك قطع
۩ اللهـــــــــــــــــــــــم صلي على سيدنا محمد وعلـى آله وصحبه أجمـعين ۩
۩ سبحـــــــــــــــــان الله وبحمده ....... سبحــــــــــــــــــــــــان الله العظيم ۩



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

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

#5 أحمد مبارك الحيقي

أحمد مبارك الحيقي

    عضو

  • الأعضــاء
  • 9 مشاركة

تاريخ المشاركة 04 February 2006 - 03:33 PM

الأخ الفاضل Admin05
كلامك صحيح، فإذا تم تحديد معامل العرض أقل من طول السلسلة فإن القطع يتم على حسب عدد خانات العرض...
وشكراً على مشاركاتك القيمة...

#6 omar-alreyati

omar-alreyati

    عضو مميز

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

تاريخ المشاركة 05 February 2006 - 09:35 AM

شكراً جزيلاً لكم الاخ أحمد والاخ admin05

لكن سؤالي ماذا تعني الباراميتر occurrence في الفانكشن instr

وشكراً

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