شرح تفصيلي لوظائف الصف الواحد PL/SQL ووظائف المجموعة الدالة هي برنامج يحتوي على صفر أو أكثر من المعلمات وقيمة الإرجاع. أوراكل لديها سلسلة من الوظائف المضمنة في SQL،
يمكن تسمية هذه الوظائف بعبارات SQL أو PL/SQL وتنقسم الوظائف بشكل أساسي إلى فئتين:
وظائف مجموعة وظائف الصف الواحد تتناول هذه المقالة كيفية استخدام وظائف الصف الواحد وقواعد استخدامها.
دالة صف واحد في SQL
تأتي SQL وPL/SQL مع العديد من أنواع الوظائف، بما في ذلك الأحرف والأرقام والتاريخ والتحويل والوظائف المختلطة لمعالجة صفوف فردية من البيانات.
لذلك يمكن الإشارة إليها بشكل جماعي على أنها وظائف الصف الواحد. يمكن استخدام هذه الوظائف في SELECT، WHERE، ORDER BY وغيرها من البنود،
على سبيل المثال، يحتوي المثال التالي على دالات ذات سطر واحد مثل TO_CHAR وUPPER وSOUNDEX.
حدد الاسم، TO_CHAR(hiredate,'day,DD-Mon-YYYY')
من الإمبراطورية
حيث UPPER(ename) مثل 'AL%'ORDER BY SOUNDEX(ename)
يمكن أيضًا استخدام وظائف الصف الواحد في عبارات أخرى، مثل جملة SET الخاصة بالتحديث، وعبارة VALUES الخاصة بـ INSERT، وعبارة WHERE الخاصة بـ DELET.
يولي اختبار الشهادة اهتمامًا خاصًا لاستخدام هذه الوظائف في عبارة SELECT، لذلك يركز اهتمامنا أيضًا على عبارة SELECT.
يمكن أن يكون فهم NULL أمرًا صعبًا في البداية، وحتى الشخص ذو الخبرة الكبيرة قد لا يزال في حيرة من أمره.
تمثل القيمة NULL بيانات غير معروفة أو قيمة فارغة أي معامل لعامل حسابي هو قيمة NULL، والنتيجة هي قيمة NULL.
تنطبق هذه القاعدة أيضًا على العديد من الوظائف. يمكن فقط لـ CONCAT وDECODE وDUMP وNVL وREPLACE إرجاع قيم غير فارغة عند استدعائها باستخدام معلمات NULL.
ومن بين هذه الوظائف، تعتبر وظيفة NVL هي الأكثر أهمية لأنها تستطيع التعامل مع القيم NULL مباشرة.
يحتوي NVL على معلمتين: NVL(x1,x2)، وكلاهما x1 وx2 عبارة عن تعبيرات. عندما يكون x1 فارغًا، يتم إرجاع X2، وإلا يتم إرجاع x1.
دعونا نلقي نظرة على جدول بيانات الموظف الذي يحتوي على الراتب والمكافأة. نحن بحاجة إلى حساب إجمالي التعويضات.
اسم العمود
نوع مفتاح مكافأة الراتب emp_id
pk بالقيم الخالية/unique nn,u nnfk رقم نوع بيانات الجدول رقم numberlength 11.2 11.2
بدلاً من مجرد إضافة الراتب والمكافأة، إذا كان صف معين يحتوي على قيمة فارغة، فستكون النتيجة فارغة، مثل المثال التالي:
تحديث الراتب الكامل = (الراتب + المكافأة) * 1.1
في هذا البيان سيتم تحديث راتب الموظف وعلاواته إلى قيمة جديدة، أما في حالة عدم وجود مكافأة،
أي الراتب + فارغ، ثم سيتم استخلاص نتيجة خاطئة في هذا الوقت، يجب استخدام وظيفة nvl للقضاء على تأثير القيم الخالية.
إذن العبارة الصحيحة هي:
تحديث الراتب الكامل = (salary+nvl(bonus,0)*1.1
دوال السلسلة ذات السطر الواحد تُستخدم وظائف السلسلة ذات السطر الواحد لمعالجة بيانات السلسلة. يحتوي معظمها على معلمة واحدة أو أكثر، ويقوم معظمها بإرجاع السلاسل.
أسكي ()
c1 عبارة عن سلسلة، تُرجع رمز ASCII للحرف الأول من c1، والدالة العكسية لها هي CHR()
حدد ASCII('A') BIG_A،ASCII('z') BIG_z
من empBIG_A BIG_z65 122
لجنة حقوق الإنسان(<i>)[NCHAR_CS]
i رقم وتقوم الدالة بإرجاع التمثيل العشري للحرف
حدد لجنة حقوق الإنسان (65)، لجنة حقوق الإنسان (122)، لجنة حقوق الإنسان (223)
من empCHR65 CHR122 CHR223A ض ب
كونكات (،)
كل من c1 وc2 عبارة عن سلاسل. تقوم الدالة بتوصيل c2 بالجزء الخلفي من c1. إذا كانت c1 فارغة، فسيتم إرجاع c2 إذا كانت c2 فارغة، فسيتم إرجاع c1.
إذا كان كل من c1 وc2 فارغين، فسيتم إرجاع null. تقوم بإرجاع نفس نتيجة عامل التشغيل ||
حدد اسم المستخدم concat('slobo','Svoboda').
من أسماء المستخدمين المزدوجةlobo Syoboda
إينيتكاب ()
c1 عبارة عن سلسلة. تقوم الدالة بإرجاع الحرف الأول من كل كلمة بأحرف كبيرة والأحرف الأخرى بأحرف صغيرة. تتكون الكلمات من مسافات، وأحرف التحكم،
قيود علامات الترقيم.
حدد INITCAP('veni,vedi,vici') قيصر
من DualCeasarVeni، Vedi، Vici
INTR(,[,<i>[,]])
c1 وc2 كلاهما سلسلتان، i وj عددان صحيحان. تقوم الدالة بإرجاع موضع حدوث j-th لـ c2 في c1، ويبدأ البحث من الحرف i-th لـ c1.
عندما لا يتم العثور على الحرف المطلوب، يتم إرجاع 0 إذا كان i رقمًا سالبًا، فسيتم إجراء البحث من اليمين إلى اليسار، ولكن لا يزال يتم حساب الموضع من اليسار إلى اليمين.
القيمة الافتراضية لـ i وj هي 1.
حدد INSTR('ميسيسيبي','i',3,3)
من INTR المزدوج ("MISSISSIPPI"، "I"، 3،3)
11
حدد INSTR('Mississippi','i',-2,3)
من INSTR المزدوج ('MISSISSIPPI'،'I'،3,3)
2
INSTRB(,[,i[,j])
مثل الدالة INSTR()، باستثناء أنها تُرجع البايتات، فبالنسبة للبايت الواحد INSTRB() تساوي INSTR().
طول()
c1 عبارة عن سلسلة، ويتم إرجاع طول c1 إذا كانت قيمة c1 فارغة، فسيتم إرجاع قيمة فارغة.
حدد LENGTH('Ipso Facto') لذلك
من Dualergo10
LENGTHb()
مثل LENGTH()، تقوم بإرجاع البايتات.
أدنى()
إرجاع الحرف الصغير لـ c، والذي يظهر غالبًا في السلسلة الفرعية حيث.
حدد أقل (اسم اللون)
من تفاصيل العنصر
حيث يكون أقل (اسم اللون) مثل '%white%'COLORNAMEWinterwhite
LPAD(,<i>[,])
c1 وc2 كلاهما سلسلتان، وi عدد صحيح. استخدم سلسلة c2 لاستكمال الطول i على الجانب الأيسر من c1، والذي يمكن تكراره عدة مرات إذا كان i أقل من طول c1،
ثم سيتم إرجاع أحرف c1 فقط طالما سيتم اقتطاع الأحرف الأخرى. القيمة الافتراضية لـ c2 هي مسافة واحدة، راجع RPAD.
حدد LPAD(answer,7,'') مبطن، والإجابة غير مبطنة
من السؤال؛
مبطن غير مبطن نعم نعم لا لا ربما
لتريم (،)
قم بإزالة الحرف الموجود في أقصى اليسار في c1 بحيث لا يكون الحرف الأول في c2. إذا لم يكن هناك c2، فلن يتغير c1.
حدد LTRIM('Mississippi','Mis') من DualLTRppi
RPAD (،<i>[،])
استخدم سلسلة c2 لاستكمال الطول i على الجانب الأيمن من c1، والذي يمكن تكراره عدة مرات إذا كان i أقل من طول c1، فسيتم إرجاع أحرف c1 فقط.
سيتم اقتطاع الآخرين. القيمة الافتراضية لـ c2 هي مسافة واحدة، أما القيم الأخرى فهي مشابهة لـ LPAD.
رتريم (،)
قم بإزالة الحرف الموجود في أقصى اليمين في c1 بحيث لا يكون الحرف الأخير في c2. إذا لم يكن هناك c2، فلن يتغير c1.
يستبدل(،[،])
c1 وc2 وc3 كلها سلاسل، وتستبدل الدالة c2 التي تظهر في c1 بـ c3 وترجع.
حدد استبدال ("أعلى المدينة"، "أعلى"، "أسفل")
من DualREPLACEdowntown
ستبستر (،<i>[،])
c1 عبارة عن سلسلة، وi وj أعداد صحيحة، ويتم إرجاع سلسلة فرعية بطول j بدءًا من الموضع i لـ c1، أو حتى نهاية السلسلة إذا كان j فارغًا.
حدد SUBSTR('رسالة',1,4)
من DualSUBSMess
فرعية(,<i>[,])
وهو تقريبًا نفس SUBSTR، فيما عدا أنه يتم حساب I وJ بالبايت.
سوندكس()
إرجاع الكلمات التي تبدو مشابهة لـ c1
حدد SOUNDEX('dawes') Dawes SOUNDEX('daws') Daws، SOUNDEX('dawson')
من DualDaws Daws DawsonD200 D200 D250
يترجم(،،)
استبدل نفس الأحرف في c1 مثل c2 بـ c3
حدد اختبار الترجمة ('fumble'،'uf'،'ar') من DualTEXTramble
تقليم([[]] من c3)
احذف الأول أو الأخير أو كليهما في سلسلة c3.
حدد القطع TRIM('space مبطن') من TRIMspace المزدوج المبطن
العلوي ()
تُرجع النسخة الكبيرة من c1، والتي تظهر غالبًا في السلسلة الفرعية حيث.
حدد اسمًا من الثنائي حيث UPPER(name) LIKE 'KI%'NAMEKING
الوظائف الرقمية ذات الصف الواحد تعمل الوظائف الرقمية ذات الصف الواحد على البيانات الرقمية، وتؤدي العمليات الحسابية والحسابية. تأخذ جميع الوظائف معلمات رقمية وترجع قيمًا رقمية.
معاملات وقيم جميع الدوال المثلثية هي راديان وليست زوايا. لا توفر Oracle وظيفة تحويل مدمجة للراديان والزوايا.
ABS ()
إرجاع القيمة المطلقة لـ n
أكوس ()
تقوم دالة العامل المساعد العكسي بإرجاع رقم بين -1 و1. n يمثل راديان
حدد ACOS(-1) بي، ACOS(1) صفر
من DualPI ZERO3.14159265 0
رقم ASIN()
على أية حال، ترجع الدالة الغامضة -1 إلى 1، ويمثل n راديان
أتان ()
دالة ظل قوسي، ترجع قيمة ظل قوسي لـ n، حيث تمثل n راديان.
سقف()
إرجاع أصغر عدد صحيح أكبر من أو يساوي n.
كوس ()
إرجاع القيمة المشتركة لـ n، حيث n هي الراديان
ضرب بالعصا()
إرجاع العامل المساعد الزائدي لـ n، حيث n هو رقم.
حدد COSH(<1.4>)
من DualCOSH(1.4)2.15089847
إكس ()
تُرجع القوة n لـ e، e=2.71828183.
أرضية()
إرجاع أكبر عدد صحيح أقل من أو يساوي N.
لن ()
إرجاع اللوغاريتم الطبيعي لـ N، والذي يجب أن يكون أكبر من 0
سجل(،)
إرجاع لوغاريتم n1 إلى الأساس n2
وزارة الدفاع ()
إرجاع باقي n1 مقسومًا على n2،
قوة(،)
إرجاع n1 مرفوعًا للأس n2
دائري(،)
تُرجع قيمة n1 مقربة إلى منازل n2 على يمين العلامة العشرية. القيمة الافتراضية لـ n2 هي 0. هذه المرة، يتم تقريب أقرب عدد صحيح إلى العلامة العشرية.
إذا كان n2 رقمًا سالبًا، فسيتم تقريبه إلى الرقم المقابل على يسار العلامة العشرية. ويجب أن يكون n2 عددًا صحيحًا.
حدد ROUND(12345,-2),ROUND(12345.54321,2)
من doubleROUND(12345,-2) ROUND(12345.54321,2)12300 12345.54
لافتة()
إذا كان n رقمًا سالبًا، فسيتم إرجاع -1، وإذا كان n رقمًا موجبًا، يتم إرجاع 1، وإذا كان n = 0، يتم إرجاع 0.
الخطيئة ()
إرجاع القيمة الموجبة لـ n، حيث n هي راديان.
سينه ()
إرجاع القيمة الموجبة للقطع الزائد لـ n، حيث n هي تقدير راديان.
سقرت ()
إرجاع الجذر التربيعي لـ n، حيث n هو الراديان
تان ()
إرجاع ظل n، حيث n هو راديان
تانه()
إرجاع المماس الزائدي لـ n، حيث n هو الراديان
ترونك (،)
تُرجع قيمة n1 مبتورة إلى منازل عشرية n2. الإعداد الافتراضي لـ n2 هو 0. عندما يكون n2 هو الإعداد الافتراضي، سيتم اقتطاع n1 إلى عدد صحيح.
إذا كانت n2 قيمة سالبة، فسيتم اقتطاعها في الموضع المقابل على يسار العلامة العشرية.
وظيفة تاريخ صف واحد
تعمل دالة التاريخ ذات السطر الواحد على نوع البيانات DATA، ومعظمها يحتوي على معلمات من نوع البيانات DATA.
معظم القيم التي تم إرجاعها هي أيضًا قيم نوع بيانات DATA.
ADD_MONTHS(,<i>)
إرجاع نتيجة التاريخ d بالإضافة إلى i أشهر. يمكنني أن أكون أي عدد صحيح. إذا كنت عددًا عشريًا ،
ثم ستقوم قاعدة البيانات بتحويله ضمنيًا إلى عدد صحيح وستقوم باقتطاع الجزء بعد العلامة العشرية.
LAST_DAY()
تقوم الدالة بإرجاع اليوم الأخير من الشهر الذي يحتوي على التاريخ د
الأشهر_بين (،)
إرجاع عدد الأشهر بين d1 وd2، إذا كان تاريخا d1 وd2 متماثلين، أو كان كلاهما اليوم الأخير من الشهر،
ثم سيتم إرجاع عدد صحيح، وإلا فإن النتيجة التي تم إرجاعها سوف تحتوي على كسر.
NEW_TIME(,,)
d1 هو نوع بيانات التاريخ عندما يكون التاريخ والوقت في المنطقة الزمنية tz1 هو d، قم بإرجاع التاريخ والوقت في المنطقة الزمنية tz2.
tz1 و tz2 عبارة عن سلاسل.
NEXT_DAY(,)
إرجاع اليوم الأول التالي للتاريخ d المعطى بواسطة dow، والذي يحدد يوم الأسبوع باستخدام اللغة المحددة في الجلسة الحالية،
مكون الوقت الذي تم إرجاعه هو نفس مكون الوقت في d.
حدد NEXT_DAY('01-يناير-2000'،'الاثنين') "الإثنين الأول"،
NEXT_DAY('01-نوفمبر-2004','الثلاثاء')+7 "الثلاثاء الثاني")
من ثنائي؛
الاثنين الأول الثلاثاء الثاني 03 يناير 2000 09 نوفمبر 2004
دائري([،])
تاريخ مستدير d وفقًا للتنسيق المحدد بواسطة fmt، وهو عبارة عن سلسلة.
سيدات
لا تأخذ الدالة أي معلمات وتقوم بإرجاع التاريخ والوقت الحاليين.
ترونك ([،])
إرجاع التاريخ d بالوحدات المحددة بواسطة fmt.
وظيفة تحويل صف واحد يتم استخدام وظيفة تحويل صف واحد لتشغيل أنواع بيانات متعددة والتحويل بين أنواع البيانات.
شارتورويد()
يقوم c بإنشاء سلسلة، وتقوم الدالة بتحويل c إلى نوع بيانات RWID.
حدد test_id
من test_case
حيث Rowid=CHARTORWID('AAAA0SAACAAAALiAAA')
يتحول(،[،])
سلسلة ذيل c وdset وsset عبارة عن مجموعتين من الأحرف. تقوم الوظيفة بتحويل السلسلة c من مجموعة أحرف sset إلى مجموعة أحرف dset.
الإعداد الافتراضي لـ sset هو مجموعة الأحرف الخاصة بقاعدة البيانات.
هيكستوراو()
x عبارة عن سلسلة سداسية عشرية، وتقوم الدالة بتحويل x الست عشري إلى نوع بيانات RAW.
راوتوهيكس()
x عبارة عن سلسلة من نوع بيانات RAW، وتقوم الدالة بتحويل نوع البيانات RAW إلى نوع بيانات سداسي عشري.
رويدتوشار()
تقوم الدالة بتحويل نوع بيانات ROWID إلى نوع بيانات CHAR.
TO_CHAR([[،)
x هو نوع بيانات أو رقم. تقوم الدالة بتحويل x إلى نوع بيانات char بالتنسيق المحدد بواسطة fmt.
إذا كان x يمثل تاريخًا، فإن nlsparm= يتحكم NLS_DATE_LANGUAGE في اللغة المستخدمة للشهر واليوم الذي يتم إرجاعه.
إذا كان x رقمًا، فسيتم استخدام nlsparm=NLS_NUMERIC_CHARACTERS لتحديد الفواصل العشرية وفواصل الآلاف، بالإضافة إلى رموز العملات.
NLS_NUMERIC_CHARACTERS = "dg"، NLS_CURRENCY = "سلسلة"
TO_DATE([،[،)
يمثل c سلسلة، ويمثل fmt سلسلة بتنسيق خاص. يُرجع c معروضًا بتنسيق fmt، ويشير nlsparm إلى اللغة المستخدمة.
تقوم الدالة بتحويل السلسلة c إلى نوع بيانات التاريخ.
TO_MULTI_BYTE()
يمثل c سلسلة، وتقوم الدالة بتحويل حرف الاقتطاع لـ c إلى حرف متعدد البايت.
TO_NUMBER([،[،)
يمثل c سلسلة، ويمثل fmt سلسلة بتنسيق خاص، ويتم عرض قيمة إرجاع الوظيفة بالتنسيق المحدد بواسطة fmt.
يمثل nlsparm اللغة، وستعيد الدالة الرقم الذي يمثله c.
TO_SINGLE_BYTE()
تحويل الأحرف متعددة البايت في السلسلة c إلى أحرف أحادية البايت مكافئة.
يتم استخدام هذه الوظيفة فقط عندما تحتوي مجموعة أحرف قاعدة البيانات على أحرف أحادية البايت ومتعددة البايت
وظائف أخرى ذات سطر واحد
اسم الملف (،)
dir هو كائن من نوع الدليل، والملف هو اسم ملف. تقوم الدالة بإرجاع مؤشر قيمة موضع BFILE فارغ،
يتم استخدام الوظيفة لتهيئة متغيرات BFILE أو أعمدة BFILE.
فك التشفير (،،[،،،[])
x تعبير، m1 هو تعبير مطابق، x مقارنة بـ m1، إذا كان m1 يساوي x، فسيتم إرجاع r1، وإلا، تتم مقارنة x بـ m2،
وهكذا m3، m4، m5.... حتى تعود النتيجة.
أحمق(،[،[،[،]]])
x عبارة عن تعبير أو حرف، ويمثل fmt حرفًا ثمانيًا أو عشريًا أو سداسيًا عشريًا أو حرفًا واحدًا.
ترجع الدالة قيمة من النوع VARCHAR2 تحتوي على معلومات حول التمثيل الداخلي لـ x.
إذا تم تحديد n1،n2 فسيتم إرجاع البايتات ذات الطول n2 بدءًا من n1.
EMPTY_BLOB()
لا تحتوي هذه الوظيفة على أي معلمات وتقوم بإرجاع مؤشر موضع BLOB فارغًا. الوظيفة المستخدمة لتهيئة متغير BLOB أو عمود BLOB.
EMPTY_CLOB()
لا تحتوي هذه الوظيفة على أي معلمات وتقوم بإرجاع مؤشر موضع CLOB فارغًا. يتم استخدام الوظيفة لتهيئة متغير CLOB أو عمود CLOB.
أعظم()
exp_list عبارة عن قائمة من التعبيرات، تُرجع أكبر تعبير، ويتم تحويل كل تعبير ضمنيًا إلى نوع بيانات التعبير الأول.
إذا كان التعبير الأول من أي نوع من أنواع بيانات السلسلة، فإن النتيجة التي تم إرجاعها هي من نوع البيانات varchar2،
المقارنة المستخدمة في نفس الوقت هي نوع مقارنة غير مملوءة بمسافة.
الأقل()
exp_list عبارة عن قائمة من التعبيرات، تُرجع أصغر تعبير بينها، ويتم تحويل كل تعبير ضمنيًا إلى نوع بيانات التعبير الأول.
إذا كان التعبير الأول من أي نوع من أنواع بيانات السلسلة، فإن النتيجة التي تم إرجاعها هي من نوع البيانات varchar2،
المقارنة المستخدمة في نفس الوقت هي نوع مقارنة غير مملوءة بمسافة.
معرف فريد
لا تحتوي هذه الدالة على أي معلمات وتقوم بإرجاع عدد صحيح يحدد مستخدم قاعدة البيانات الحالي بشكل فريد.
مستخدم
إرجاع اسم المستخدم للمستخدم الحالي
USERENV()
بناءً على خيار الإرجاع، يحتوي على معلومات الجلسة الحالية. القيم الاختيارية للإختيار هي:
يستجيب دور SYSDBA في جلسة ISDBA ويعيد TRUE.
SESSIONID يُرجع معرف جلسة التدقيق
تقوم ENTRYID بإرجاع معرفات إدخال التدقيق المتاحة
INSTANCE يُرجع معرف المثيل بعد اتصال الجلسة.
يتم استخدام هذه القيمة فقط إذا كنت تقوم بتشغيل خادم Parallel ولديك مثيلات متعددة.
تقوم LANGUAGE بإرجاع مجموعة الأحرف الخاصة بإعدادات اللغة والمنطقة وقاعدة البيانات.
تقوم LANG بإرجاع اختصار ISO لاسم اللغة.
TERMINAL يُرجع معرف نظام التشغيل للمحطة أو الكمبيوتر الذي تستخدمه الجلسة الحالية.
حجم صغير ()
x هو تعبير. إرجاع عدد البايتات الممثلة داخليًا بـ x.
تسمى وظائف المجموعة في SQL أيضًا بالوظائف المجمعة، فهي تقوم بإرجاع نتيجة واحدة بناءً على صفوف متعددة. لا يمكن تحديد العدد الدقيق للصفوف.
ما لم يتم تنفيذ الاستعلام ويتم تضمين جميع النتائج. على عكس وظائف الصف الواحد، فإن جميع الصفوف معروفة في وقت التحليل.
وبسبب هذا الاختلاف، فإن وظائف المجموعة لها متطلبات وسلوك مختلف قليلاً عن وظائف الصف الواحد.
وظائف المجموعة (متعددة الصفوف) بالمقارنة مع وظائف الصف الواحد، توفر Oracle مجموعة غنية من الوظائف متعددة الصفوف القائمة على المجموعة.
يمكن استخدام هذه الوظائف في تحديد أو في جملة التحديد، وغالبًا ما يتم استخدامها مع GROUP BY عند استخدامها لتحديد سلاسل فرعية.
متوسط([{DISYINCT|الكل}])
إرجاع متوسط القيم الرقمية. الإعداد الافتراضي هو الكل.
حدد AVG(sal)، AVG(ALL sal)، AVG(DISTINCT sal)
من scott.empAVG(SAL) AVG(ALL SAL) AVG(DISTINCT SAL)1877.94118 1877.94118 1916.071413
العد({*|متميز|الكل} )
إرجاع عدد الصفوف في الاستعلام. الإعداد الافتراضي هو الكل، * يعني إرجاع كافة الصفوف.
الحد الأقصى([{مميز|الكل}])
تُرجع القيمة القصوى لعنصر قائمة التحديد إذا كان x نوع بيانات سلسلة، فإنها تُرجع نوع بيانات VARCHAR2.
إذا كان X هو نوع بيانات DATA، فسيتم إرجاع تاريخ، وإذا كان X هو نوع بيانات رقمي، فسيتم إرجاع رقم.
لاحظ أن التمييز والجميع ليس له أي تأثير، ويجب أن تكون القيمة القصوى هي نفسها لكلا الإعدادين.
الحد الأدنى([{متميز|الكل}])
إرجاع الحد الأدنى لقيمة عنصر قائمة التحديد.
STDDEV([{متميز|الكل}])
إرجاع الانحراف المعياري لعناصر قائمة المحدد، حيث يكون الانحراف المعياري هو الجذر التربيعي للتباين.
مجموع([{متميز|الكل}])
إرجاع مجموع القيم الرقمية لعناصر القائمة المحددة.
التباين([{متميز|الكل}])
إرجاع التباين الإحصائي لعنصر قائمة محدد.
استخدم GROUP BY لتجميع البيانات، كما يوحي العنوان، تعمل وظيفة المجموعة على البيانات التي تم تجميعها.
نقول لقاعدة البيانات كيفية تجميع البيانات أو تصنيفها باستخدام GROUP BY عندما نستخدم وظيفة المجموعة في جملة SELECT في عبارة SELECT،
يجب علينا وضع أعمدة مجمعة أو غير ثابتة في جملة GROUP BY إذا لم يتم استخدام المجموعة حسب للمعالجة الخاصة،
ثم التصنيف الافتراضي هو تعيين النتيجة بأكملها في فئة واحدة.
حدد القانون، العداد (*) zip_count
من مجموعة الرموز البريدية حسب الولاية؛
ST ZIP_COUNT----------AK 360AL 1212AR 1309AZ 768CA 3982
في هذا المثال، نستخدم حقل الحالة للتصنيف؛ إذا أردنا فرز النتائج وفقًا للأكواد البريدية، فيمكننا استخدام عبارة ORDER BY،
يمكن أن تستخدم جملة ORDER BY وظائف العمود أو المجموعة.
حدد القانون، العداد (*) zip_count
من الرموز البريدية
المجموعة حسب الولاية ORDER BY COUNT(*) DESC;
رقم ST(*)----------نيويورك 4312PA 4297TX 4123CA 3982
تقييد البيانات المجمعة باستخدام جملة HAVING
الآن بعد أن عرفت كيفية استخدام الوظيفة الرئيسية في عبارة SELECT وعبارة ORDER BY الخاصة بالاستعلام، يمكن استخدام وظيفة المجموعة فقط على سلسلتين فرعيتين.
لا يمكن استخدام وظائف المجموعة في سلاسل WHERE الفرعية، على سبيل المثال، الاستعلام التالي خاطئ:
خطأ
حدد كاتب_المبيعات،SUN(sale_amount)
من إجمالي_المبيعات
حيث sales_dept='OUTSIDE' وSUM(sale_amount)>10000
المجموعة حسب sales_clerk
في هذا البيان، لا تعرف قاعدة البيانات ما هو SUM() عندما نحتاج إلى توجيه قاعدة البيانات لتجميع الصفوف ثم تحديد إخراج الصفوف المجمعة.
الطريقة الصحيحة هي استخدام عبارة HAVING:
حدد كاتب_المبيعات،SUN(sale_amount)
من إجمالي_المبيعات
حيث sales_dept='خارج'
المجموعة حسب sales_clerk
الحصول على مبلغ(sale_amount)>10000;
الوظائف المتداخلة يمكن أن تكون الوظائف متداخلة. يمكن أن يكون مخرجات إحدى الوظائف بمثابة مدخلات لوظيفة أخرى. المعاملات لديها عملية تنفيذ قابلة للتوريث.
لكن أولوية الوظائف لا تعتمد إلا على الموضع، والوظائف تتبع المبدأ من الداخل إلى الخارج ومن اليسار إلى اليمين.
يتم استخدام تقنية التداخل بشكل عام لوظائف مثل DECODE التي يمكن استخدامها في عبارات الحكم المنطقية إذا...ثم...ELSE.