SQL
कार्य (स्केलर / एकल पंक्ति)
खोज…
परिचय
SQL कई अंतर्निहित स्केलर फ़ंक्शन प्रदान करता है। प्रत्येक स्केलर फ़ंक्शन इनपुट के रूप में एक मान लेता है और परिणाम सेट में प्रत्येक पंक्ति के लिए आउटपुट के रूप में एक मान देता है।
आप एक T-SQL स्टेटमेंट में जहाँ भी अभिव्यक्ति की अनुमति है, आप स्केलर फ़ंक्शंस का उपयोग करते हैं।
वाक्य - विन्यास
- कास्ट (अभिव्यक्ति के रूप में data_type [(लंबाई)])
- CONVERT (data_type [लंबाई)], अभिव्यक्ति [, शैली])
- PARSE (string_value AS data_type [USING कल्चर])
- DATENAME (दिनांक, तिथि)
- तारीख लें ( )
- DatedIFF (दिनांक, प्रारंभ, अंतिम तिथि)
- DATEADD (दिनांक, संख्या, दिनांक)
- CHOOSE (सूचकांक, val_1, val_2 [, val_n])
- आईआईएफ (बूलियन_कंपनी, true_value, false_value)
- साइन (न्यूमेरिक_प्रेशन)
- शक्ति (फ्लोट_फैप्रेशन, y)
टिप्पणियों
परिणाम सेट में डेटा की प्रत्येक पंक्ति को संचालित करने के लिए स्केलर या सिंगल-रो फ़ंक्शंस का उपयोग किया जाता है, जो कि एग्रिगेट फ़ंक्शंस के विपरीत होता है, जो संपूर्ण परिणाम सेट पर संचालित होता है।
स्केलर फ़ंक्शन दस प्रकार के होते हैं।
- कॉन्फ़िगरेशन फ़ंक्शन वर्तमान SQL आवृत्ति के कॉन्फ़िगरेशन के बारे में जानकारी प्रदान करते हैं।
- रूपांतरण फ़ंक्शन किसी दिए गए ऑपरेशन के लिए डेटा को सही डेटा प्रकार में परिवर्तित करते हैं। उदाहरण के लिए, इस प्रकार के फ़ंक्शन दो अलग-अलग प्रकारों की तुलना करने की अनुमति देने के लिए स्ट्रिंग को किसी दिनांक या संख्या में परिवर्तित करके सूचना को सुधार सकते हैं।
- दिनांक और समय फ़ंक्शन दिनांक और समय मान वाले फ़ील्ड में हेरफेर करते हैं। वे संख्यात्मक, दिनांक, या स्ट्रिंग मान वापस कर सकते हैं। उदाहरण के लिए, आप सप्ताह या वर्ष के वर्तमान दिन को पुनः प्राप्त करने के लिए या दिनांक से केवल वर्ष को पुनः प्राप्त करने के लिए एक फ़ंक्शन का उपयोग कर सकते हैं।
दिनांक और समय फ़ंक्शन द्वारा लौटाए गए मान SQL आवृत्ति पर चल रहे कंप्यूटर के ऑपरेटिंग सिस्टम के लिए निर्धारित दिनांक और समय पर निर्भर करते हैं।
- तार्किक फ़ंक्शन जो तार्किक ऑपरेटरों का उपयोग करके संचालन करता है। यह परिस्थितियों के एक सेट का मूल्यांकन करता है और एक परिणाम देता है।
- गणितीय कार्य संख्यात्मक अभिव्यक्तियों पर गणितीय कार्य या गणना करते हैं। इस प्रकार का फ़ंक्शन एकल संख्यात्मक मान लौटाता है।
- मेटाडेटा फ़ंक्शन एक निर्दिष्ट डेटाबेस के बारे में जानकारी प्राप्त करता है, जैसे कि उसका नाम और डेटाबेस ऑब्जेक्ट।
- सुरक्षा फ़ंक्शन ऐसी जानकारी प्रदान करते हैं जिसका उपयोग आप डेटाबेस की सुरक्षा को प्रबंधित करने के लिए कर सकते हैं, जैसे डेटाबेस उपयोगकर्ताओं और भूमिकाओं के बारे में जानकारी।
- स्ट्रिंग फ़ंक्शन स्ट्रिंग मानों पर कार्रवाई करते हैं और संख्यात्मक या स्ट्रिंग मानों को वापस करते हैं।
स्ट्रिंग फ़ंक्शंस का उपयोग करके, आप उदाहरण के लिए, डेटा को जोड़ सकते हैं, सबस्ट्रिंग निकाल सकते हैं, स्ट्रिंग्स की तुलना कर सकते हैं या स्ट्रिंग को सभी अपरकेस या लोअरकेस वर्णों में परिवर्तित कर सकते हैं।
- सिस्टम फ़ंक्शंस ऑपरेशन करते हैं और वर्तमान SQL उदाहरण के लिए मान, ऑब्जेक्ट और सेटिंग्स के बारे में जानकारी लौटाते हैं
- सिस्टम सांख्यिकीय फ़ंक्शन वर्तमान SQL उदाहरण के बारे में विभिन्न आंकड़े प्रदान करते हैं - उदाहरण के लिए, ताकि आप सिस्टम के वर्तमान प्रदर्शन स्तरों की निगरानी कर सकें।
चरित्र संशोधन
चरित्र संशोधन कार्यों में पात्रों को ऊपरी या निचले मामलों के पात्रों में परिवर्तित करना, संख्याओं को स्वरूपित संख्याओं में परिवर्तित करना, चरित्र हेरफेर करना, आदि शामिल हैं।
lower(char)
फ़ंक्शन दिए गए वर्ण पैरामीटर को निम्न-आवरण वर्णों में परिवर्तित करता है।
SELECT customer_id, lower(customer_last_name) FROM customer;
ग्राहक का अंतिम नाम "SMITH" से बदलकर "स्मिथ" कर देगा।
दिनांक और समय
SQL में, आप कैलेंडर जानकारी संग्रहीत करने के लिए दिनांक और समय डेटा प्रकारों का उपयोग करते हैं। इन डेटा प्रकारों में समय, दिनांक, स्मालेडटाइमटाइम, डेटाटाइम, डेटाटाइम 2 और डेटाटाइमऑफ़सेट शामिल हैं। प्रत्येक डेटा प्रकार का एक विशिष्ट प्रारूप होता है।
डाटा प्रकार | स्वरूप |
---|---|
समय | hh: mm: ss [.nnnnnnn] |
दिनांक | YYYY-MM-DD |
smalldatetime | YYYY-MM-DD hh: mm: ss |
दिनांक और समय | YYYY-MM-DD hh: mm: ss [.nnn] |
datetime2 | YYYY-MM-DD hh: mm: ss [.nnnnnn] |
datetimeoffset | YYYY-MM-DD hh: mm: ss [.nnnnnnn] [+/-] hsh: mm |
DATENAME
फ़ंक्शन दिनांक के किसी विशिष्ट भाग का नाम या मान लौटाता है।
SELECT DATENAME (weekday,'2017-01-14') as Datename
Datename |
---|
शनिवार |
आप वर्तमान SQL आवृत्ति चल रहे कंप्यूटर की वर्तमान तिथि और समय निर्धारित करने के लिए GETDATE
फ़ंक्शन का उपयोग करते हैं। इस फ़ंक्शन में समय क्षेत्र अंतर शामिल नहीं है।
SELECT GETDATE() as Systemdate
सिस्टम का दिनांक |
---|
2017-01-14 11: 11: 47.7230728 |
DATEDIFF
फ़ंक्शन दो तिथियों के बीच का अंतर लौटाता है।
वाक्यविन्यास में, दिनांकांक वह पैरामीटर है जो अंतर की गणना करने के लिए आपके द्वारा उपयोग किए जाने वाले दिनांक के किस भाग को निर्दिष्ट करता है। दिनांक, वर्ष, महीना, सप्ताह, दिन, घंटा, मिनट, दूसरा या मिलीसेकंड हो सकता है। आप तब प्रारंभ पैरामीटर में प्रारंभ दिनांक और अंतिम तिथि के लिए अंतिम तिथि निर्दिष्ट करते हैं जिसके लिए आप अंतर खोजना चाहते हैं।
SELECT SalesOrderID, DATEDIFF(day, OrderDate, ShipDate)
AS 'Processing time'
FROM Sales.SalesOrderHeader
SalesOrderID | प्रसंस्करण समय |
---|---|
43,659 | 7 |
43,660 | 7 |
43,661 | 7 |
43,662 | 7 |
DATEADD
फ़ंक्शन आपको किसी विशिष्ट दिनांक के भाग में एक अंतराल जोड़ने में सक्षम बनाता है।
SELECT DATEADD (day, 20, '2017-01-14') AS Added20MoreDays
Added20MoreDays |
---|
2017-02-03 00: 00: 00.000 |
कॉन्फ़िगरेशन और रूपांतरण फ़ंक्शन
SQL में कॉन्फ़िगरेशन फ़ंक्शन का एक उदाहरण @@SERVERNAME
फ़ंक्शन है। यह फ़ंक्शन SQL चला रहे स्थानीय सर्वर का नाम प्रदान करता है।
SELECT @@SERVERNAME AS 'Server'
सर्वर |
---|
SQL064 |
SQL में, अधिकांश डेटा रूपांतरण बिना किसी उपयोगकर्ता के हस्तक्षेप के होते हैं।
किसी भी रूपांतरण को पूरा करने के लिए, जिसे आप संक्षेप में पूरा नहीं कर सकते, आप CAST
या CONVERT
फ़ंक्शन का उपयोग कर सकते हैं।
CAST
फ़ंक्शन सिंटैक्स CONVERT
फ़ंक्शन सिंटैक्स की तुलना में सरल है, लेकिन यह सीमित है कि यह क्या कर सकता है।
यहाँ, हम CAST
और CONVERT
दोनों प्रकार के कार्यों का उपयोग डेटाटाइम प्रकार को varchar
डेटा प्रकार में बदलने के लिए करते हैं।
CAST
फ़ंक्शन हमेशा डिफ़ॉल्ट शैली सेटिंग का उपयोग करता है। उदाहरण के लिए, यह YYYY-MM-DD प्रारूप का उपयोग करके दिनांक और समय का प्रतिनिधित्व करेगा।
CONVERT
फ़ंक्शन आपके द्वारा निर्दिष्ट दिनांक और समय शैली का उपयोग करता है। इस स्थिति में, 3 दिनांक स्वरूप dd / mm / yy निर्दिष्ट करता है।
USE AdventureWorks2012
GO
SELECT FirstName + ' ' + LastName + ' was hired on ' +
CAST(HireDate AS varchar(20)) AS 'Cast',
FirstName + ' ' + LastName + ' was hired on ' +
CONVERT(varchar, HireDate, 3) AS 'Convert'
FROM Person.Person AS p
JOIN HumanResources.Employee AS e
ON p.BusinessEntityID = e.BusinessEntityID
GO
कास्ट | धर्मांतरित |
---|---|
2003-02-04 को डेविड हैमिल्टन को काम पर रखा गया था | डेविड हैमिल्टन को 04/02/03 को काम पर रखा गया था |
रूपांतरण फ़ंक्शन का एक अन्य उदाहरण PARSE
फ़ंक्शन है। यह फ़ंक्शन एक स्ट्रिंग को एक निर्दिष्ट डेटा प्रकार में परिवर्तित करता है।
फ़ंक्शन के लिए सिंटैक्स में, आप उस स्ट्रिंग को निर्दिष्ट करते हैं जिसे परिवर्तित किया जाना चाहिए, AS
कीवर्ड, और फिर आवश्यक डेटा प्रकार। वैकल्पिक रूप से, आप उस संस्कृति को भी निर्दिष्ट कर सकते हैं जिसमें स्ट्रिंग मान को स्वरूपित किया जाना चाहिए। यदि आप इसे निर्दिष्ट नहीं करते हैं, तो सत्र के लिए भाषा का उपयोग किया जाता है।
यदि स्ट्रिंग मान को सांख्यिक, दिनांक, या समय प्रारूप में परिवर्तित नहीं किया जा सकता है, तो इसका परिणाम त्रुटि होगा। फिर आपको रूपांतरण के लिए CAST
या CONVERT
का उपयोग करना होगा।
SELECT PARSE('Monday, 13 August 2012' AS datetime2 USING 'en-US') AS 'Date in English'
अंग्रेजी में तारीख |
---|
2012-08-13 00: 00: 00.0000000 |
लॉजिकल और मैथमेटिकल फंक्शन
SQL के दो तार्किक कार्य हैं - CHOOSE
और IIF
।
CHOOSE
फ़ंक्शन सूची में अपनी स्थिति के आधार पर, मूल्यों की सूची से एक आइटम लौटाता है। यह स्थिति सूचकांक द्वारा निर्दिष्ट की जाती है।
सिंटैक्स में, इंडेक्स पैरामीटर आइटम को निर्दिष्ट करता है और एक पूर्ण संख्या, या पूर्णांक है। Val_1… val_n पैरामीटर मानों की सूची की पहचान करता है।
SELECT CHOOSE(2, 'Human Resources', 'Sales', 'Admin', 'Marketing' ) AS Result;
परिणाम |
---|
बिक्री |
इस उदाहरण में, आप विभागों की सूची में दूसरी प्रविष्टि वापस करने के लिए CHOOSE
फ़ंक्शन का उपयोग करते हैं।
IIF
फ़ंक्शन किसी विशेष स्थिति के आधार पर दो में से एक मान लौटाता है। यदि स्थिति सही है, तो यह सही मान देगा। अन्यथा यह गलत मान लौटाएगा।
सिंटैक्स में, बूलियन_एक्सप्रेशन पैरामीटर बूलियन अभिव्यक्ति को निर्दिष्ट करता है। True_value पैरामीटर उस मान को निर्दिष्ट करता है, जिसे वापस किया जाना चाहिए यदि boolean_expression सही पर मूल्यांकन करता है और false_value पैरामीटर उस मान को निर्दिष्ट करता है जिसे वापस किया जाना चाहिए यदि boolean_expression झूठी का मूल्यांकन करता है।
SELECT BusinessEntityID, SalesYTD,
IIF(SalesYTD > 200000, 'Bonus', 'No Bonus') AS 'Bonus?'
FROM Sales.SalesPerson
GO
BusinessEntityID | SalesYTD | बक्शीश? |
---|---|---|
274 | 559697.5639 | बक्शीश |
275 | 3763178.1787 | बक्शीश |
285 | 172524.4512 | कोई बोनस नहीं |
इस उदाहरण में, आप दो मूल्यों में से एक को वापस करने के लिए IIF फ़ंक्शन का उपयोग करते हैं। यदि किसी बिक्री व्यक्ति की साल भर की बिक्री 200,000 से ऊपर है, तो यह व्यक्ति बोनस के लिए पात्र होगा। 200,000 से नीचे के मूल्यों का मतलब है कि कर्मचारी बोनस के लिए योग्य नहीं हैं।
एसक्यूएल में कई गणितीय कार्य शामिल हैं जिनका उपयोग आप इनपुट मानों पर गणना करने और संख्यात्मक परिणाम वापस करने के लिए कर सकते हैं।
एक उदाहरण SIGN
फ़ंक्शन है, जो एक मूल्य को एक अभिव्यक्ति के संकेत को दर्शाता है। -1 का मान नकारात्मक अभिव्यक्ति को इंगित करता है, +1 का मान सकारात्मक अभिव्यक्ति को इंगित करता है, और 0 शून्य को इंगित करता है।
SELECT SIGN(-20) AS 'Sign'
संकेत |
---|
-1 |
उदाहरण में, इनपुट एक ऋणात्मक संख्या है, इसलिए परिणाम फलक परिणाम -1 को सूचीबद्ध करता है।
एक अन्य गणितीय कार्य POWER
फ़ंक्शन है। यह फ़ंक्शन एक निर्दिष्ट शक्ति को उठाए गए अभिव्यक्ति का मूल्य प्रदान करता है।
सिंटैक्स में, फ़्लोट_एक्सप्रेशन पैरामीटर अभिव्यक्ति निर्दिष्ट करता है, और वाई पैरामीटर उस शक्ति को निर्दिष्ट करता है, जिसे आप अभिव्यक्ति को उठाना चाहते हैं।
SELECT POWER(50, 3) AS Result
परिणाम |
---|
125000 |