SQL
स्ट्रिंग फ़ंक्शंस
खोज…
परिचय
स्ट्रिंग फ़ंक्शन स्ट्रिंग मानों पर कार्रवाई करते हैं और संख्यात्मक या स्ट्रिंग मान लौटाते हैं।
स्ट्रिंग फ़ंक्शंस का उपयोग करके, आप उदाहरण के लिए, डेटा को जोड़ सकते हैं, सबस्ट्रिंग निकाल सकते हैं, स्ट्रिंग्स की तुलना कर सकते हैं या स्ट्रिंग को सभी अपरकेस या लोअरकेस वर्णों में परिवर्तित कर सकते हैं।
वाक्य - विन्यास
- CONCAT (string_value1, string_value2 [, string_valueN])
- LTRIM (character_expression)
- RTRIM (character_expression)
- SUBSTRING (अभिव्यक्ति, शुरुआत, लंबाई)
- ASCII (character_expression)
- उत्तर दें (string_expression, integer_expression)
- समीक्षा (string_expression)
- UPPER (character_expression)
- TRIM ([वर्ण से] स्ट्रिंग)
- STRING_SPLIT (स्ट्रिंग, विभाजक)
- STUFF (character_expression, start, length, replaceWith_expression)
- रिपोर्ट (string_expression, string_pattern, string_replacement)
टिप्पणियों
खाली स्थानों को ट्रिम करें
ट्रिम का उपयोग चयन की शुरुआत या अंत में राइट-स्पेस को हटाने के लिए किया जाता है
MSSQL में एक भी TRIM()
SELECT LTRIM(' Hello ') --returns 'Hello '
SELECT RTRIM(' Hello ') --returns ' Hello'
SELECT LTRIM(RTRIM(' Hello ')) --returns 'Hello'
MySql और Oracle
SELECT TRIM(' Hello ') --returns 'Hello'
CONCATENATE
इन (मानक एएनएसआई / आईएसओ) एसक्यूएल, स्ट्रिंग संघनन के लिए ऑपरेटर है ||
। यह सिंटैक्स SQL सर्वर को छोड़कर सभी प्रमुख डेटाबेस द्वारा समर्थित है:
SELECT 'Hello' || 'World' || '!'; --returns HelloWorld!
कई डेटाबेस स्ट्रिंग में शामिल होने के लिए एक CONCAT
फ़ंक्शन का समर्थन करते हैं:
SELECT CONCAT('Hello', 'World'); --returns 'HelloWorld'
कुछ डेटाबेस दो से अधिक स्ट्रिंग्स में जुड़ने के लिए CONCAT
का उपयोग करते हैं (Oracle नहीं):
SELECT CONCAT('Hello', 'World', '!'); --returns 'HelloWorld!'
कुछ डेटाबेस में, गैर-स्ट्रिंग प्रकारों को डाला या परिवर्तित किया जाना चाहिए:
SELECT CONCAT('Foo', CAST(42 AS VARCHAR(5)), 'Bar'); --returns 'Foo42Bar'
कुछ डेटाबेस (जैसे, ओरेकल) अंतर्निहित दोषरहित रूपांतरण करते हैं। उदाहरण के लिए, एक CONCAT
एक पर CLOB
और NCLOB
एक पैदावार NCLOB
। एक CONCAT
एक संख्या है और एक पर varchar2
एक में परिणाम varchar2
, आदि .:
SELECT CONCAT(CONCAT('Foo', 42), 'Bar') FROM dual; --returns Foo42Bar
कुछ डेटाबेस गैर-मानक +
ऑपरेटर का उपयोग कर सकते हैं (लेकिन अधिकांश में, +
केवल संख्याओं के लिए काम करता है):
SELECT 'Foo' + CAST(42 AS VARCHAR(5)) + 'Bar';
SQL सर्वर <2012 पर, जहां CONCAT
समर्थित नहीं है, +
तार जोड़ने का एकमात्र तरीका है।
ऊपरी निचला
SELECT UPPER('HelloWorld') --returns 'HELLOWORLD'
SELECT LOWER('HelloWorld') --returns 'helloworld'
सबस्ट्रिंग
सिंटैक्स है: SUBSTRING ( string_expression, start, length )
। ध्यान दें कि SQL स्ट्रिंग्स 1-अनुक्रमित हैं।
SELECT SUBSTRING('Hello', 1, 2) --returns 'He'
SELECT SUBSTRING('Hello', 3, 3) --returns 'llo'
यह अक्सर अज्ञात लंबाई की एक स्ट्रिंग के अंतिम n
अक्षर प्राप्त करने के लिए LEN()
फ़ंक्शन के साथ संयोजन में उपयोग किया जाता है।
DECLARE @str1 VARCHAR(10) = 'Hello', @str2 VARCHAR(10) = 'FooBarBaz';
SELECT SUBSTRING(@str1, LEN(@str1) - 2, 3) --returns 'llo'
SELECT SUBSTRING(@str2, LEN(@str2) - 2, 3) --returns 'Baz'
विभाजित करें
एक चरित्र विभाजक का उपयोग करके एक स्ट्रिंग अभिव्यक्ति को विभाजित करता है। ध्यान दें कि STRING_SPLIT()
एक टेबल-वैल्यू फ़ंक्शन है।
SELECT value FROM STRING_SPLIT('Lorem ipsum dolor sit amet.', ' ');
परिणाम:
value
-----
Lorem
ipsum
dolor
sit
amet.
सामग्री
किसी दूसरी स्थिति में 0 या अधिक वर्णों को प्रतिस्थापित करते हुए एक स्ट्रिंग को दूसरे में रखें।
नोट: start
स्थिति 1-अनुक्रमित है (आप 1 पर अनुक्रमित करना शुरू करते हैं, 0 नहीं)।
वाक्य - विन्यास:
STUFF ( character_expression , start , length , replaceWith_expression )
उदाहरण:
SELECT STUFF('FooBarBaz', 4, 3, 'Hello') --returns 'FooHelloBaz'
लंबाई
एस क्यू एल सर्वर
LEN अनुगामी स्थान की गणना नहीं करता है।
SELECT LEN('Hello') -- returns 5
SELECT LEN('Hello '); -- returns 5
DATALENGTH अनुगामी स्थान को गिनता है।
SELECT DATALENGTH('Hello') -- returns 5
SELECT DATALENGTH('Hello '); -- returns 6
हालांकि यह ध्यान दिया जाना चाहिए, कि DATALENGTH स्ट्रिंग की अंतर्निहित बाइट प्रतिनिधित्व की लंबाई लौटाता है, जो स्ट्रिंग को संग्रहीत करने के लिए उपयोग किए जाने वाले चारसेट पर निर्भर करता है।
DECLARE @str varchar(100) = 'Hello ' --varchar is usually an ASCII string, occupying 1 byte per char
SELECT DATALENGTH(@str) -- returns 6
DECLARE @nstr nvarchar(100) = 'Hello ' --nvarchar is a unicode string, occupying 2 bytes per char
SELECT DATALENGTH(@nstr) -- returns 12
आकाशवाणी
सिंटेक्स: लंबाई (चार)
उदाहरण:
SELECT Length('Bible') FROM dual; --Returns 5
SELECT Length('righteousness') FROM dual; --Returns 13
SELECT Length(NULL) FROM dual; --Returns NULL
यह भी देखें: लंबाई, लंबाई, लंबाई 2, लंबाई 4
बदलने के
वाक्य - विन्यास:
REPLACE(
खोज करने के लिए स्ट्रिंग ,
स्ट्रिंग के लिए खोज और बदलने के लिए ,
मूल स्ट्रिंग में जगह पर स्ट्रिंग )
उदाहरण:
SELECT REPLACE( 'Peter Steve Tom', 'Steve', 'Billy' ) --Return Values: Peter Billy Tom
बाएँ दांए
सिंटैक्स है:
LEFT (स्ट्रिंग-एक्सप्रेशन, पूर्णांक)
राइट (स्ट्रिंग-एक्सप्रेशन, पूर्णांक)
SELECT LEFT('Hello',2) --return He
SELECT RIGHT('Hello',2) --return lo
Oracle SQL में LEFT और RIGHT फ़ंक्शन नहीं हैं। उन्हें SUBSTR और LENGTH के साथ अनुकरण किया जा सकता है।
SUBSTR (स्ट्रिंग-अभिव्यक्ति, 1, पूर्णांक)
SUBSTR (स्ट्रिंग-एक्सप्रेशन, लंबाई (स्ट्रिंग-एक्सप्रेशन) -integer + 1, पूर्णांक)
SELECT SUBSTR('Hello',1,2) --return He
SELECT SUBSTR('Hello',LENGTH('Hello')-2+1,2) --return lo
रिवर्स
सिंटैक्स है: REVERSE (स्ट्रिंग-एक्सप्रेशन)
SELECT REVERSE('Hello') --returns olleH
दोहराने
REPLICATE
फ़ंक्शन एक स्ट्रिंग को अपने साथ कई बार निर्दिष्ट करता है।
सिंटैक्स है: REPLICATE (स्ट्रिंग-एक्सप्रेशन, पूर्णांक)
SELECT REPLICATE ('Hello',4) --returns 'HelloHelloHelloHello'
regexp
जाँचता है कि क्या एक स्ट्रिंग एक नियमित अभिव्यक्ति (दूसरे स्ट्रिंग द्वारा परिभाषित) से मेल खाती है।
SELECT 'bedded' REGEXP '[a-f]' -- returns True
SELECT 'beam' REGEXP '[a-f]' -- returns False
SQL सेलेक्ट और अपडेट क्वेरी में फ़ंक्शन को बदलें
SQL में बदलें फ़ंक्शन का उपयोग स्ट्रिंग की सामग्री को अपडेट करने के लिए किया जाता है। फ़ंक्शन कॉल MySQL, Oracle, और SQL सर्वर के लिए REPLACE () है।
बदलें फ़ंक्शन का सिंटैक्स है:
REPLACE (str, find, repl)
निम्न उदाहरण कर्मचारी तालिका में Southern
साथ South
घटनाओं को प्रतिस्थापित करता है:
पहला नाम | पता |
---|---|
जेम्स | दक्षिण न्यूयॉर्क |
जॉन | दक्षिण बोस्टन |
माइकल | दक्षिण सैन डिएगो |
कथन का चयन करें:
यदि हम निम्नलिखित रिप्लेसमेंट फंक्शन लागू करते हैं:
SELECT
FirstName,
REPLACE (Address, 'South', 'Southern') Address
FROM Employees
ORDER BY FirstName
परिणाम:
पहला नाम | पता |
---|---|
जेम्स | दक्षिणी न्यूयॉर्क |
जॉन | दक्षिणी बोस्टन |
माइकल | दक्षिणी सैन डिएगो |
अपडेट स्टेटमेंट:
हम निम्नलिखित दृष्टिकोण के माध्यम से अपनी तालिका में स्थायी परिवर्तन करने के लिए एक प्रतिस्थापित फ़ंक्शन का उपयोग कर सकते हैं।
Update Employees
Set city = (Address, 'South', 'Southern');
एक अधिक सामान्य तरीका यह है कि इस तरह से WHERE क्लॉज के साथ इसका उपयोग किया जाए:
Update Employees
Set Address = (Address, 'South', 'Southern')
Where Address LIKE 'South%';
PARSENAME
DATABASE : SQL सर्वर
PARSENAME फ़ंक्शन दिए गए स्ट्रिंग (ऑब्जेक्ट नाम) के विशिष्ट भाग को लौटाता है। ऑब्जेक्ट नाम में ऑब्जेक्ट नाम, स्वामी का नाम, डेटाबेस का नाम और सर्वर नाम जैसे स्ट्रिंग हो सकते हैं।
अधिक विवरण MSDN: PARSENAME
वाक्य - विन्यास
PARSENAME('NameOfStringToParse',PartIndex)
उदाहरण
ऑब्जेक्ट नाम प्राप्त करने के लिए भाग 1
उपयोग करें
SELECT PARSENAME('ServerName.DatabaseName.SchemaName.ObjectName',1) // returns `ObjectName`
SELECT PARSENAME('[1012-1111].SchoolDatabase.school.Student',1) // returns `Student`
स्कीमा नाम प्राप्त करने के लिए भाग 2
उपयोग करें
SELECT PARSENAME('ServerName.DatabaseName.SchemaName.ObjectName',2) // returns `SchemaName`
SELECT PARSENAME('[1012-1111].SchoolDatabase.school.Student',2) // returns `school`
डेटाबेस का नाम पाने के लिए पार्ट इंडेक्स 3
उपयोग करें
SELECT PARSENAME('ServerName.DatabaseName.SchemaName.ObjectName',3) // returns `DatabaseName`
SELECT PARSENAME('[1012-1111].SchoolDatabase.school.Student',3) // returns `SchoolDatabase`
सर्वर नाम पाने के लिए भाग 4
उपयोग करें
SELECT PARSENAME('ServerName.DatabaseName.SchemaName.ObjectName',4) // returns `ServerName`
SELECT PARSENAME('[1012-1111].SchoolDatabase.school.Student',4) // returns `[1012-1111]`
PARSENAME वापस आएगा अशक्त निर्दिष्ट भाग दिए गए ऑब्जेक्ट नाम स्ट्रिंग में मौजूद नहीं है
INSTR
सबस्ट्रिंग की पहली घटना का सूचकांक लौटाएं (शून्य नहीं मिला तो)
सिंटैक्स: INSTR (स्ट्रिंग, सबस्ट्रिंग)
SELECT INSTR('FooBarBar', 'Bar') -- return 4
SELECT INSTR('FooBarBar', 'Xar') -- return 0