Microsoft SQL Server
स्ट्रिंग फ़ंक्शंस
खोज…
टिप्पणियों
स्ट्रिंग कार्यों की सूची (वर्णानुक्रम में क्रमबद्ध):
बाएं
एक उप स्ट्रिंग को छोड़ देता है जो एक स्ट्रिंग के बाईं सबसे चार से शुरू होती है और अधिकतम निर्दिष्ट लंबाई तक होती है।
पैरामीटर:
- चरित्र की अभिव्यक्ति। चरित्र की अभिव्यक्ति किसी भी डेटा प्रकार की हो सकती है,
text
याntext
को छोड़कर,varchar
याnvarchar
रूपांतरित किया जा सकता है - अधिकतम लंबाई। 0 और
bigint
अधिकतम मान (9,223,372,036,854,775,807) के बीच पूर्णांक संख्या।
यदि अधिकतम लंबाई पैरामीटर नकारात्मक है, तो एक त्रुटि उठाई जाएगी।
SELECT LEFT('This is my string', 4) -- result: 'This'
यदि अधिकतम लंबाई अधिक है, तो स्ट्रिंग में वर्णों की संख्या, एन्टरियर स्ट्रिंग वापस आ जाती है।
SELECT LEFT('This is my string', 50) -- result: 'This is my string'
सही
एक उप स्ट्रिंग देता है जो निर्दिष्ट अधिकतम लंबाई के साथ, स्ट्रिंग का सबसे सही हिस्सा है।
पैरामीटर:
- चरित्र की अभिव्यक्ति। चरित्र की अभिव्यक्ति किसी भी डेटा प्रकार की हो सकती है,
text
याntext
को छोड़कर,varchar
याnvarchar
रूपांतरित किया जा सकता है - अधिकतम लंबाई। 0 और
bigint
अधिकतम मान (9,223,372,036,854,775,807) के बीच पूर्णांक संख्या। यदि अधिकतम लंबाई पैरामीटर नकारात्मक है, तो एक त्रुटि उठाई जाएगी।
SELECT RIGHT('This is my string', 6) -- returns 'string'
यदि अधिकतम लंबाई अधिक है, तो स्ट्रिंग में वर्णों की संख्या, एन्टरियर स्ट्रिंग वापस आ जाती है।
SELECT RIGHT('This is my string', 50) -- returns 'This is my string'
सबस्ट्रिंग
एक विकल्प है कि चार के साथ शुरू होता है कि निर्दिष्ट प्रारंभ सूचकांक और निर्दिष्ट अधिकतम लंबाई में देता है।
पैरामीटर:
- चरित्र की अभिव्यक्ति। चरित्र की अभिव्यक्ति किसी भी डेटा प्रकार की हो सकती है,
text
याntext
अलावा,varchar
याnvarchar
रूपांतरित किया जा सकता है। - सूचकांक शुरू करें। एक संख्या (
int
याbigint
) जो अनुरोधित विकल्प के प्रारंभ सूचकांक को निर्दिष्ट करती है। ( नोट: sql सर्वर में तार बेस 1 इंडेक्स हैं, जिसका अर्थ है कि स्ट्रिंग का पहला वर्ण इंडेक्स 1 है)। यह संख्या तब कम हो सकती है। 1. इस स्थिति में, यदि स्टार्ट इंडेक्स और अधिकतम लंबाई का योग अधिक है तो 0, रिटर्न स्ट्रिंग एक स्ट्रिंग होगी जो चरित्र अभिव्यक्ति के पहले चार्ट से शुरू होती है और (स्टार्ट इंडेक्स) की लंबाई के साथ + अधिकतम लंबाई - 1)। यदि यह कम है तो 0, एक खाली स्ट्रिंग लौटा दी जाएगी। - अधिकतम लंबाई। 0 और
bigint
अधिकतम मान (9,223,372,036,854,775,807) के बीच पूर्णांक संख्या। यदि अधिकतम लंबाई पैरामीटर नकारात्मक है, तो एक त्रुटि उठाई जाएगी।
SELECT SUBSTRING('This is my string', 6, 5) -- returns 'is my'
यदि अधिकतम लंबाई + स्टार्ट इंडेक्स अधिक है तो स्ट्रिंग में वर्णों की संख्या, एन्टरियर स्ट्रिंग वापस आ जाती है।
SELECT SUBSTRING('Hello World',1,100) -- returns 'Hello World'
यदि स्टार्ट इंडेक्स बड़ा है तो स्ट्रिंग में वर्णों की संख्या, एक खाली स्ट्रिंग लौटा दी जाती है।
SELECT SUBSTRING('Hello World',15,10) -- returns ''
ASCII
एक स्ट्रिंग के सबसे बाएं वर्ण के ASCII कोड का प्रतिनिधित्व करने वाला एक अंतर मान लौटाता है।
SELECT ASCII('t') -- Returns 116
SELECT ASCII('T') -- Returns 84
SELECT ASCII('This') -- Returns 84
यदि स्ट्रिंग यूनिकोड है और सबसे बाईं ओर का अक्षर ASCII नहीं है, लेकिन वर्तमान टकराव में प्रतिनिधित्व करने योग्य है, तो 127 से अधिक मूल्य वापस आ सकता है:
SELECT ASCII(N'ï') -- returns 239 when `SERVERPROPERTY('COLLATION') = 'SQL_Latin1_General_CP1_CI_AS'`
यदि स्ट्रिंग यूनिकोड है और वर्तमान कोलाज में सबसे बाईं ओर के चरित्र का प्रतिनिधित्व नहीं किया जा सकता है, तो 63 का मान लौटाया जाता है: (जो ASCII में प्रश्न चिह्न का प्रतिनिधित्व करता है):
SELECT ASCII(N'߷') -- returns 63
SELECT ASCII(nchar(2039)) -- returns 63
CHARINDEX
एक और स्ट्रिंग अभिव्यक्ति के अंदर स्ट्रिंग अभिव्यक्ति की पहली घटना का प्रारंभ सूचकांक लौटाता है।
पैरामीटर सूची:
- खोजने के लिए स्ट्रिंग (8000 वर्ण तक)
- खोज करने के लिए स्ट्रिंग (बाइनरी सहित कोई भी मान्य वर्ण डेटा प्रकार और लंबाई)
- (वैकल्पिक) सूचकांक शुरू करने के लिए। कई प्रकार के int या बड़े int। यदि छोड़ा या कम हुआ तो 1, स्ट्रिंग की शुरुआत में खोज शुरू होती है।
खोज करने के लिए स्ट्रिंग है varchar(max)
, nvarchar(max)
या varbinary(max)
, CHARINDEX
समारोह एक वापस आ जाएगी bigint
मूल्य। अन्यथा, यह एक int
वापस कर देगा।
SELECT CHARINDEX('is', 'this is my string') -- returns 3
SELECT CHARINDEX('is', 'this is my string', 4) -- returns 6
SELECT CHARINDEX(' is', 'this is my string') -- returns 5
चार
एक इंट एएससीआईआई कोड द्वारा प्रतिनिधित्व किया गया एक रिटर्न देता है।
SELECT CHAR(116) -- Returns 't'
SELECT CHAR(84) -- Returns 'T'
इसका उपयोग नई लाइन / लाइन फीड CHAR(10)
, गाड़ी रिटर्न CHAR(13)
, आदि देखने के लिए किया जा सकता है। संदर्भ के लिए AsciiTable.com देखें।
यदि तर्क मान 0 और 255 के बीच नहीं है, तो CHAR फ़ंक्शन NULL
देता NULL
।
CHAR
फ़ंक्शन का रिटर्न डेटा प्रकार char(1)
लेन
एक स्ट्रिंग के वर्णों की संख्या लौटाता है।
नोट: LEN
फ़ंक्शन ट्रेलिंग स्थानों को अनदेखा करता है:
SELECT LEN('My string'), -- returns 9
LEN('My string '), -- returns 9
LEN(' My string') -- returns 12
यदि अनुगामी रिक्त स्थान सहित लंबाई वांछित है, तो इसे प्राप्त करने के लिए कई तकनीकें हैं, हालांकि प्रत्येक में इसकी कमियां हैं। एक तकनीक को एक एकल वर्ण को स्ट्रिंग में जोड़ना है, और फिर LEN
माइनस एक का उपयोग करना है:
DECLARE @str varchar(100) = 'My string '
SELECT LEN(@str + 'x') - 1 -- returns 12
इसका दोष यह है कि यदि स्ट्रिंग चर या स्तंभ का प्रकार अधिकतम लंबाई का है, तो अतिरिक्त वर्ण का परिशिष्ट छोड़ दिया जाता है, और परिणामस्वरूप लंबाई अभी भी अनुगामी रिक्त स्थान की गणना नहीं करेगी। यह पता करने के लिए कि, निम्न संशोधित संस्करण समस्या को हल करता है, और अतिरिक्त निष्पादन समय की एक छोटी राशि की कीमत पर सभी मामलों में सही परिणाम देता है, और इस वजह से (सही परिणाम, सरोगेट जोड़े और उचित निष्पादन की गति सहित) उपयोग करने के लिए सबसे अच्छी तकनीक प्रतीत होती है:
SELECT LEN(CONVERT(NVARCHAR(MAX), @str) + 'x') - 1
DATALENGTH
फ़ंक्शन का उपयोग करने के लिए एक और तकनीक है।
DECLARE @str varchar(100) = 'My string '
SELECT DATALENGTH(@str) -- returns 12
यह ध्यान रखना महत्वपूर्ण है कि DATALENGTH
मेमोरी में स्ट्रिंग के बाइट्स में लंबाई लौटाता है। यह varchar
बनाम nvarchar
लिए अलग होगा।
DECLARE @str nvarchar(100) = 'My string '
SELECT DATALENGTH(@str) -- returns 24
आप इसके लिए एक एकल वर्ण (जो एक ही प्रकार का होना चाहिए) के डटलट्रीम द्वारा स्ट्रिंग की डटलमेट्री को विभाजित करके समायोजित कर सकते हैं। नीचे दिया गया उदाहरण ऐसा करता है, और उस मामले को भी संभालता है जहां लक्ष्य स्ट्रिंग खाली होता है, इस प्रकार शून्य से विभाजन से बचा जाता है।
DECLARE @str nvarchar(100) = 'My string '
SELECT DATALENGTH(@str) / DATALENGTH(LEFT(LEFT(@str, 1) + 'x', 1)) -- returns 12
हालांकि, यह SQL Server 2012 और इसके बाद के संस्करण में एक समस्या है। यह गलत परिणाम देगा जब स्ट्रिंग में सरोगेट जोड़े होंगे (कुछ वर्ण एक ही स्ट्रिंग में अन्य वर्णों की तुलना में अधिक बाइट्स पर कब्जा कर सकते हैं)।
रिक्त स्थान को गैर-स्थान वर्ण में बदलने के लिए REPLACE
का उपयोग करने और परिणाम का LEN
लेने के लिए एक और तकनीक है। यह सभी मामलों में सही परिणाम देता है, लेकिन लंबी स्ट्रिंग के साथ निष्पादन की गति बहुत खराब है।
concat
एक स्ट्रिंग देता है जो दो या दो से अधिक तार के एक साथ जुड़ने का परिणाम है। CONCAT
दो या अधिक तर्कों को स्वीकार करता है।
SELECT CONCAT('This', ' is', ' my', ' string') -- returns 'This is my string'
नोट: स्ट्रिंग संघनक संचालक ( +
) का उपयोग करते हुए समवर्ती स्ट्रिंग्स के विपरीत, जब concat
फ़ंक्शन को एक शून्य मान पास करना, तो यह इसे खाली स्ट्रिंग में बदल देगा:
SELECT CONCAT('This', NULL, ' is', ' my', ' string'), -- returns 'This is my string'
'This' + NULL + ' is' + ' my' + ' string' -- returns NULL.
गैर-स्ट्रिंग प्रकार के तर्कों को भी स्ट्रिंग में बदल दिया जाएगा:
SELECT CONCAT('This', ' is my ', 3, 'rd string') -- returns 'This is my 3rd string'
गैर-स्ट्रिंग प्रकार चर भी स्ट्रिंग प्रारूप में परिवर्तित हो जाएंगे, इसे स्ट्रिंग में मैन्युअल रूप से कवर करने या डालने की कोई आवश्यकता नहीं है:
DECLARE @Age INT=23;
SELECT CONCAT('Ram is ', @Age,' years old'); -- returns 'Ram is 23 years old'
पुराने संस्करण CONCAT
फ़ंक्शन का समर्थन नहीं करते हैं और इसके बजाय स्ट्रिंग CONCAT
ऑपरेटर ( +
) का उपयोग करना चाहिए। उन्हें इस तरह से बदलने के लिए गैर-स्ट्रिंग प्रकारों को डाला या स्ट्रिंग प्रकारों में परिवर्तित किया जाना चाहिए।
SELECT 'This is the number ' + CAST(42 AS VARCHAR(5)) --returns 'This is the number 42'
कम
सभी अपरकेस वर्णों को लोअरकेस में परिवर्तित करने के बाद एक वर्ण अभिव्यक्ति ( varchar
या nvarchar
) देता है।
पैरामीटर:
- चरित्र की अभिव्यक्ति। चरित्र या द्विआधारी डेटा की कोई भी अभिव्यक्ति जो स्पष्ट रूप से
varchar
परिवर्तित हो सकती है।
SELECT LOWER('This IS my STRING') -- Returns 'this is my string'
DECLARE @String nchar(17) = N'This IS my STRING';
SELECT LOWER(@String) -- Returns 'this is my string'
अपर
सभी लोअरकेस वर्णों को अपरकेस में कनवर्ट करने के बाद एक वर्ण अभिव्यक्ति ( varchar
या nvarchar
) देता है।
पैरामीटर:
- चरित्र की अभिव्यक्ति। चरित्र या द्विआधारी डेटा की कोई भी अभिव्यक्ति जो स्पष्ट रूप से
varchar
परिवर्तित हो सकती है।
SELECT UPPER('This IS my STRING') -- Returns 'THIS IS MY STRING'
DECLARE @String nchar(17) = N'This IS my STRING';
SELECT UPPER(@String) -- Returns 'THIS IS MY STRING'
LTrim
सभी प्रमुख सफेद रिक्त स्थान, यानी बाईं ओर से पहले गैर-सफेद स्थान वर्ण के माध्यम से सफेद रिक्त स्थान को हटाने के बाद एक वर्ण अभिव्यक्ति ( varchar
या nvarchar
) देता है।
पैरामीटर:
- चरित्र की अभिव्यक्ति। चरित्र या बाइनरी डेटा के किसी भी अभिव्यक्ति है कि परोक्ष में बदला जा सकता
varcher
, सिवाय इसकेtext
,ntext
औरimage
।
SELECT LTRIM(' This is my string') -- Returns 'This is my string'
RTrim
सभी अनुगामी श्वेत रिक्त स्थान, यानी, स्ट्रिंग के दाईं ओर से रिक्त स्थान को हटाने तक एक वर्ण अभिव्यक्ति ( varchar
या nvarchar
) देता है जब तक कि पहले गैर-श्वेत स्थान वर्ण बाईं ओर नहीं हो जाता।
पैरामीटर:
- चरित्र की अभिव्यक्ति। चरित्र या बाइनरी डेटा के किसी भी अभिव्यक्ति है कि परोक्ष में बदला जा सकता
varcher
, सिवाय इसकेtext
,ntext
औरimage
।
SELECT RTRIM('This is my string ') -- Returns 'This is my string'
यूनिकोड
इनपुट अभिव्यक्ति के पहले चरित्र के यूनिकोड मूल्य का प्रतिनिधित्व करते हुए पूर्णांक मान लौटाता है।
पैरामीटर:
- यूनिकोड चरित्र अभिव्यक्ति। किसी भी मान्य
nchar
याnvarchar
अभिव्यक्ति।
SELECT UNICODE(N'Ɛ') -- Returns 400
DECLARE @Unicode nvarchar(11) = N'Ɛ is a char'
SELECT UNICODE(@Unicode) -- Returns 400
nCHAR
यूनिकोड वर्ण (s) ( nchar(1)
या nvarchar(2)
) को पूर्णांक तर्क के अनुसार देता है, जो यूनिकोड मानक द्वारा परिभाषित है।
पैरामीटर:
- पूर्णांक अभिव्यक्ति। कोई भी पूर्णांक अभिव्यक्ति जो कि 0 और 65535 के बीच एक सकारात्मक संख्या है, या यदि डेटाबेस का टकराव पूरक चरित्र (CS) ध्वज का समर्थन करता है, तो समर्थित सीमा 0 से 1114111 के बीच है। यदि पूर्णांक अभिव्यक्ति इस सीमा के अंदर नहीं आती है, तो
null
है लौटाया हुआ।
SELECT NCHAR(257) -- Returns 'ā'
SELECT NCHAR(400) -- Returns 'Ɛ'
रिवर्स
उल्टे क्रम में एक स्ट्रिंग मान लौटाता है।
पैरामीटर:
- स्ट्रिंग अभिव्यक्ति। कोई भी स्ट्रिंग या बाइनरी डेटा जिसे स्पष्ट रूप से
varchar
परिवर्तित किया जा सकता है।
Select REVERSE('Sql Server') -- Returns 'revreS lqS'
PATINDEX
निर्दिष्ट अभिव्यक्ति में निर्दिष्ट पैटर्न की पहली घटना की प्रारंभिक स्थिति देता है।
पैरामीटर:
पैटर्न। एक वर्ण अभिव्यक्ति में पाया जाने वाला अनुक्रम होता है। अधिकतम 8000 वर्णों तक सीमित। वाइल्डकार्ड (
%
,_
) का उपयोग पैटर्न में किया जा सकता है। यदि पैटर्न वाइल्डकार्ड से शुरू नहीं होता है, तो यह अभिव्यक्ति की शुरुआत में जो कुछ भी है, उससे मेल खा सकता है। यदि यह वाइल्डकार्ड के साथ समाप्त नहीं होता है, तो यह अभिव्यक्ति के अंत में जो कुछ भी है, उससे मेल खा सकता है।अभिव्यक्ति। कोई भी स्ट्रिंग डेटा प्रकार।
SELECT PATINDEX('%ter%', 'interesting') -- Returns 3.
SELECT PATINDEX('%t_r%t%', 'interesting') -- Returns 3.
SELECT PATINDEX('ter%', 'interesting') -- Returns 0, since 'ter' is not at the start.
SELECT PATINDEX('inter%', 'interesting') -- Returns 1.
SELECT PATINDEX('%ing', 'interesting') -- Returns 9.
अंतरिक्ष
बार-बार रिक्त स्थान की एक स्ट्रिंग ( varchar
) लौटाता है।
पैरामीटर:
- पूर्णांक अभिव्यक्ति। किसी भी पूर्णांक अभिव्यक्ति, 8000 तक। यदि नकारात्मक,
null
वापस आ गया है। यदि 0, एक खाली स्ट्रिंग लौटा दी जाती है। (एक स्ट्रिंग लंबे समय तक 8000 रिक्त स्थान वापस करने के लिए, पुन: उपयोग करें।
SELECT SPACE(-1) -- Returns NULL
SELECT SPACE(0) -- Returns an empty string
SELECT SPACE(3) -- Returns ' ' (a string containing 3 spaces)
दोहराने
एक स्ट्रिंग मान को कई बार निर्दिष्ट करता है।
पैरामीटर:
- स्ट्रिंग अभिव्यक्ति। स्ट्रिंग अभिव्यक्ति एक चरित्र स्ट्रिंग या बाइनरी डेटा हो सकती है।
- पूर्णांक अभिव्यक्ति। किसी भी पूर्णांक प्रकार,
bigint
सहित। यदि नकारात्मक,null
वापस आ गया है। यदि 0, एक रिक्त स्ट्रिंग दी गई है।
SELECT REPLICATE('a', -1) -- Returns NULL
SELECT REPLICATE('a', 0) -- Returns ''
SELECT REPLICATE('a', 5) -- Returns 'aaaaa'
SELECT REPLICATE('Abc', 3) -- Returns 'AbcAbcAbc'
नोट: यदि स्ट्रिंग अभिव्यक्ति प्रकार का नहीं है, तो varchar(max)
या nvarchar(max)
, वापसी मूल्य 8000 वर्ण से अधिक नहीं होगा। पुनरावृत्ति स्ट्रिंग को जोड़ने से पहले बंद हो जाएगी जो उस सीमा से अधिक का मान लौटाएगी:
SELECT LEN(REPLICATE('a b c d e f g h i j k l', 350)) -- Returns 7981
SELECT LEN(REPLICATE(cast('a b c d e f g h i j k l' as varchar(max)), 350)) -- Returns 8050
बदलने के
एक स्ट्रिंग ( varchar
या nvarchar
) लौटाता है जहाँ एक निर्दिष्ट उप स्ट्रिंग की सभी घटनाओं को दूसरे उप स्ट्रिंग के साथ बदल दिया जाता है।
पैरामीटर:
- स्ट्रिंग अभिव्यक्ति। यह वह स्ट्रिंग है जिसे खोजा जाएगा। यह एक चरित्र या बाइनरी डेटा प्रकार हो सकता है।
- पैटर्न। यह उप स्ट्रिंग है जिसे प्रतिस्थापित किया जाएगा। यह एक चरित्र या बाइनरी डेटा प्रकार हो सकता है। पैटर्न तर्क एक खाली स्ट्रिंग नहीं हो सकता।
- प्रतिस्थापन। यह उप स्ट्रिंग है जो पैटर्न उप स्ट्रिंग की जगह लेगा। यह एक चरित्र या बाइनरी डेटा हो सकता है।
SELECT REPLACE('This is my string', 'is', 'XX') -- Returns 'ThXX XX my string'.
टिप्पणियाँ:
- यदि स्ट्रिंग एक्सप्रेशन प्रकार का नहीं है
varchar(max)
याnvarchar(max)
, तोreplace
फंक्शन 8,000 चार्ट पर रिटर्न वैल्यू को काट देता है। - वापसी डेटा प्रकार इनपुट डेटा प्रकार पर निर्भर करता है - रिटर्न
nvarchar
यदि इनपुट मानों में से एक हैnvarchar
, याvarchar
अन्यथा। - वापसी
NULL
यदि इनपुट पैरामीटर के किसी भी हैNULL
String_Split
एक चरित्र विभाजक का उपयोग करके एक स्ट्रिंग अभिव्यक्ति को विभाजित करता है। ध्यान दें कि STRING_SPLIT()
एक टेबल-वैल्यू फ़ंक्शन है और इसलिए इसे FROM
क्लॉज़ के भीतर उपयोग किया जाना चाहिए।
पैरामीटर:
- स्ट्रिंग। कोई भी वर्ण प्रकार अभिव्यक्ति (
char
,nchar
,varchar
याnvarchar
) - विभाजक। किसी भी प्रकार की एक एकल वर्ण अभिव्यक्ति (
char(1)
,nchar(1)
,varchar(1)
याnvarchar(1)
)।
एक एकल स्तंभ तालिका लौटाता है जहां प्रत्येक पंक्ति में स्ट्रिंग का एक टुकड़ा होता है। स्तंभों का नाम value
, और डेटाटाइप nvarchar
यदि कोई भी पैरामीटर या तो nchar
या nvarchar
, अन्यथा varchar
।
निम्नलिखित उदाहरण विभाजक के रूप में अंतरिक्ष का उपयोग करके एक स्ट्रिंग को विभाजित करता है:
SELECT value FROM STRING_SPLIT('Lorem ipsum dolor sit amet.', ' ');
परिणाम:
value
-----
Lorem
ipsum
dolor
sit
amet.
टिप्पणियों:
STRING_SPLIT
फ़ंक्शन केवल संगतता स्तर 130 के तहत उपलब्ध है। यदि आपका डेटाबेस संगतता स्तर 130 से कम है, तो SQL सर्वरSTRING_SPLIT
फ़ंक्शन को खोजने और निष्पादित करने में सक्षम नहीं होगा। आप निम्न आदेश का उपयोग करके डेटाबेस के संगतता स्तर को बदल सकते हैं:
ALTER DATABASE [database_name] SET COMPATIBILITY_LEVEL = 130
Sql सर्वर के पुराने संस्करणों में स्प्लिट स्ट्रिंग फंक्शन में बिल्ट नहीं होता है। कई उपयोगकर्ता परिभाषित कार्य हैं जो एक स्ट्रिंग को विभाजित करने की समस्या को संभालते हैं। आप हारून बर्ट्रेंड के लेख स्प्लिट स्ट्रिंग्स को सही तरीके से पढ़ सकते हैं - या उनमें से कुछ की व्यापक तुलना के लिए अगला सबसे अच्छा तरीका है।
Str
संख्यात्मक डेटा से परिवर्तित वर्ण डेटा ( varchar
) देता है।
पैरामीटर:
- फ्लोट अभिव्यक्ति। दशमलव बिंदु के साथ अनुमानित संख्यात्मक डेटा प्रकार।
- लंबाई। वैकल्पिक। स्ट्रिंग अभिव्यक्ति की कुल लंबाई, जो अंकों, दशमलव बिंदु और प्रमुख स्थानों (यदि आवश्यक हो) सहित वापस आ जाएगी। डिफ़ॉल्ट मान 10 है।
- दशमलव। वैकल्पिक। दशमलव बिंदु के दाईं ओर अंकों की संख्या। यदि 16 से अधिक है, तो परिणाम दशमलव बिंदु के दाईं ओर सोलह स्थानों पर काट दिया जाएगा।
SELECT STR(1.2) -- Returns ' 1'
SELECT STR(1.2, 3) -- Returns ' 1'
SELECT STR(1.2, 3, 2) -- Returns '1.2'
SELECT STR(1.2, 5, 2) -- Returns ' 1.20'
SELECT STR(1.2, 5, 5) -- Returns '1.200'
SELECT STR(1, 5, 2) -- Returns ' 1.00'
SELECT STR(1) -- Returns ' 1'
Quotename
यह एक वैध SQL सर्वर सीमांकित पहचानकर्ता बनाने के लिए सीमांकक से घिरा यूनिकोड स्ट्रिंग देता है।
पैरामीटर:
- वर्ण स्ट्रिंग। यूनिकोड डेटा की एक स्ट्रिंग, 128 अक्षर (
sysname
) तक। यदि एक इनपुट स्ट्रिंग 128 वर्णों से अधिक है, तो फ़ंक्शनnull
। - भाव चरित्र। वैकल्पिक । एक एकल चरित्र एक सीमांकक के रूप में उपयोग करने के लिए। एकल उद्धरण चिह्न (
'
या ``), बाएँ या दाएँ ब्रैकेट ({
,[
,(
,<
या>
,)
,]
,}
) या एक दोहरे उद्धरण चिह्न ("
) हो सकता है। कोई भी अन्य मान शून्य हो जाएगा। डिफ़ॉल्ट मूल्य वर्ग कोष्ठक है।
SELECT QUOTENAME('what''s my name?') -- Returns [what's my name?]
SELECT QUOTENAME('what''s my name?', '[') -- Returns [what's my name?]
SELECT QUOTENAME('what''s my name?', ']') -- Returns [what's my name?]
SELECT QUOTENAME('what''s my name?', '''') -- Returns 'what''s my name?'
SELECT QUOTENAME('what''s my name?', '"') -- Returns "what's my name?"
SELECT QUOTENAME('what''s my name?', ')') -- Returns (what's my name?)
SELECT QUOTENAME('what''s my name?', '(') -- Returns (what's my name?)
SELECT QUOTENAME('what''s my name?', '<') -- Returns <what's my name?>
SELECT QUOTENAME('what''s my name?', '>') -- Returns <what's my name?>
SELECT QUOTENAME('what''s my name?', '{') -- Returns {what's my name?}
SELECT QUOTENAME('what''s my name?', '}') -- Returns {what's my name?}
SELECT QUOTENAME('what''s my name?', '`') -- Returns `what's my name?`
Soundex
दो तारों के ध्वन्यात्मक समानता का मूल्यांकन करने के लिए एक चार-वर्ण कोड ( varchar
) देता है।
पैरामीटर:
- चरित्र की अभिव्यक्ति। वर्ण डेटा की एक अल्फ़ान्यूमेरिक अभिव्यक्ति।
साउंडटेक्स फ़ंक्शन एक चार-वर्ण कोड बनाता है जो इस बात पर आधारित होता है कि बोले जाने पर वर्ण की अभिव्यक्ति कैसी होगी। पहला चार्ट पैरामीटर के पहले चरित्र का ऊपरी केस संस्करण है, बाकी 3 अक्षर अभिव्यक्ति में अक्षरों का प्रतिनिधित्व करने वाले नंबर हैं (एक, ई, आई, ओ, यू, एच, डब्ल्यू और वाई को छोड़कर जो नजरअंदाज किए जाते हैं) ।
SELECT SOUNDEX ('Smith') -- Returns 'S530'
SELECT SOUNDEX ('Smythe') -- Returns 'S530'
अंतर
एक पूर्णांक ( int
) मान लौटाता है जो दो वर्ण अभिव्यक्तियों के ध्वनि मानों के बीच के अंतर को इंगित करता है।
पैरामीटर:
- चरित्र अभिव्यक्ति 1।
- चरित्र अभिव्यक्ति 2।
दोनों पैरामीटर वर्ण डेटा के अल्फ़ान्यूमेरिक अभिव्यक्ति हैं।
पूर्णांक लौटाया गया पैरामीटर के ध्वनि मानों में वर्णों की संख्या समान है, इसलिए 4 का अर्थ है कि अभिव्यक्तियां बहुत समान हैं और 0 का अर्थ है कि वे बहुत भिन्न हैं।
SELECT SOUNDEX('Green'), -- G650
SOUNDEX('Greene'), -- G650
DIFFERENCE('Green','Greene') -- Returns 4
SELECT SOUNDEX('Blotchet-Halls'), -- B432
SOUNDEX('Greene'), -- G650
DIFFERENCE('Blotchet-Halls', 'Greene') -- Returns 0
स्वरूप
निर्दिष्ट प्रारूप और संस्कृति (यदि निर्दिष्ट) के साथ स्वरूपित NVARCHAR
मान लौटाता है। यह मुख्य रूप से तिथि-समय प्रकारों को स्ट्रिंग्स में परिवर्तित करने के लिए उपयोग किया जाता है।
पैरामीटर:
-
value
। प्रारूपित समर्थित डेटा प्रकार की अभिव्यक्ति। मान्य प्रकार नीचे सूचीबद्ध हैं। -
format
। एकNVARCHAR
प्रारूप पैटर्न। मानक और कस्टम प्रारूप स्ट्रिंग के लिए Microsoft आधिकारिक दस्तावेज़ देखें। -
culture
। वैकल्पिक ।nvarchar
तर्क एक संस्कृति को निर्दिष्ट करता है। डिफ़ॉल्ट मान वर्तमान सत्र की संस्कृति है।
दिनांक
मानक प्रारूप स्ट्रिंग्स का उपयोग करना:
DECLARE @d DATETIME = '2016-07-31';
SELECT
FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result' -- Returns '7/31/2016'
,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result' -- Returns '31/07/2016'
,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result' -- Returns '31.07.2016'
,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result' -- Returns '2016/7/31'
,FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result' -- Returns 'Sunday, July 31, 2016'
,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result' -- Returns '31 July 2016'
,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result' -- Returns 'Sonntag, 31. Juli 2016'
कस्टम प्रारूप स्ट्रिंग्स का उपयोग करना:
SELECT FORMAT( @d, 'dd/MM/yyyy', 'en-US' ) AS 'DateTime Result' -- Returns '31/07/2016'
,FORMAT(123456789,'###-##-####') AS 'Custom Number Result' -- Returns '123-45-6789',
,FORMAT( @d,'dddd, MMMM dd, yyyy hh:mm:ss tt','en-US') AS 'US' -- Returns 'Sunday, July 31, 2016 12:00:00 AM'
,FORMAT( @d,'dddd, MMMM dd, yyyy hh:mm:ss tt','hi-IN') AS 'Hindi' -- Returns रविवार, जुलाई 31, 2016 12:00:00 पूर्वाह्न
,FORMAT ( @d, 'dddd', 'en-US' ) AS 'US' -- Returns 'Sunday'
,FORMAT ( @d, 'dddd', 'hi-IN' ) AS 'Hindi' -- Returns 'रविवार'
FORMAT
उपयोग CURRENCY
, PERCENTAGE
और NUMBERS
को स्वरूपित करने के लिए भी किया जा सकता है।
मुद्रा
DECLARE @Price1 INT = 40
SELECT FORMAT(@Price1,'c','en-US') AS 'CURRENCY IN US Culture' -- Returns '$40.00'
,FORMAT(@Price1,'c','de-DE') AS 'CURRENCY IN GERMAN Culture' -- Returns '40,00 €'
हम दशमलव के बाद अंकों की संख्या निर्दिष्ट कर सकते हैं।
DECLARE @Price DECIMAL(5,3) = 40.356
SELECT FORMAT( @Price, 'C') AS 'Default', -- Returns '$40.36'
FORMAT( @Price, 'C0') AS 'With 0 Decimal', -- Returns '$40'
FORMAT( @Price, 'C1') AS 'With 1 Decimal', -- Returns '$40.4'
FORMAT( @Price, 'C2') AS 'With 2 Decimal', -- Returns '$40.36'
को PERCENTAGE
DECLARE @Percentage float = 0.35674
SELECT FORMAT( @Percentage, 'P') AS '% Default', -- Returns '35.67 %'
FORMAT( @Percentage, 'P0') AS '% With 0 Decimal', -- Returns '36 %'
FORMAT( @Percentage, 'P1') AS '% with 1 Decimal' -- Returns '35.7 %'
संख्या
DECLARE @Number AS DECIMAL(10,2) = 454545.389
SELECT FORMAT( @Number, 'N','en-US') AS 'Number Format in US', -- Returns '454,545.39'
FORMAT( @Number, 'N','en-IN') AS 'Number Format in INDIA', -- Returns '4,54,545.39'
FORMAT( @Number, '#.0') AS 'With 1 Decimal', -- Returns '454545.4'
FORMAT( @Number, '#.00') AS 'With 2 Decimal', -- Returns '454545.39'
FORMAT( @Number, '#,##.00') AS 'With Comma and 2 Decimal', -- Returns '454,545.39'
FORMAT( @Number, '##.00') AS 'Without Comma and 2 Decimal', -- Returns '454545.39'
FORMAT( @Number, '000000000') AS 'Left-padded to nine digits' -- Returns '000454545'
मान्य मान प्रकार सूची: ( स्रोत )
Category Type .Net type
-------------------------------------------
Numeric bigint Int64
Numeric int Int32
Numeric smallint Int16
Numeric tinyint Byte
Numeric decimal SqlDecimal
Numeric numeric SqlDecimal
Numeric float Double
Numeric real Single
Numeric smallmoney Decimal
Numeric money Decimal
Date and Time date DateTime
Date and Time time TimeSpan
Date and Time datetime DateTime
Date and Time smalldatetime DateTime
Date and Time datetime2 DateTime
Date and Time datetimeoffset DateTimeOffset
महत्वपूर्ण लेख:
-
FORMAT
एक संस्कृति से भिन्न त्रुटियों के लिएNULL
देताNULL
जो मान्य नहीं है। उदाहरण के लिए, यदि स्वरूप में निर्दिष्ट मान मान्य नहीं है, तोNULL
लौटा दिया जाता है। -
FORMAT
.NET फ्रेमवर्क सामान्य भाषा रनटाइम (CLR) की उपस्थिति पर निर्भर करता है। -
FORMAT
CLR स्वरूपण नियमों पर निर्भर करता है जो यह आदेश देते हैं कि कॉलोन और अवधियों को बच जाना चाहिए। इसलिए, जब प्रारूप स्ट्रिंग (दूसरा पैरामीटर) में एक बृहदान्त्र या अवधि होती है, तो एक इनपुट मान (पहला पैरामीटर) समय डेटा प्रकार का होने पर कॉलोन या अवधि को बैकस्लैश से बच जाना चाहिए।
FORMAT प्रलेखन उदाहरण का उपयोग करके दिनांक और समय प्रारूपण भी देखें।
String_escape
पाठों में विशेष वर्ण और बच गए वर्णों के साथ पाठ ( nvarchar(max)
) देता है।
पैरामीटर:
पाठ। एक
nvarchar
अभिव्यक्ति है जो स्ट्रिंग से बचना चाहिए।प्रकार। बचने के नियम जो लागू होंगे। वर्तमान में एकमात्र समर्थित मूल्य
'json'
।
SELECT STRING_ESCAPE('\ /
\\ " ', 'json') -- returns '\\\t\/\n\\\\\t\"\t'
ऐसे पात्रों की सूची जो बच जाएंगे:
Special character Encoded sequence
-------------------------------------
Quotation mark (") \"
Reverse solidus (\) \\
Solidus (/) \/
Backspace \b
Form feed \f
New line \n
Carriage return \r
Horizontal tab \t
Control character Encoded sequence
------------------------------------
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f