मेरे पास निम्न स्ट्रिंग है (एक एडी विशिष्ट नाम):
CN=Surname\, Firstname (something),OU=Fixed6,OU=Department99,OU=Fixed5,OU=Fixed4,DC=Fixed3,DC=Fixed2,DC=Fixed
मुझे उसमें से "विभाग 99" को पार्स करने की आवश्यकता है ("ओयू =" की आवश्यकता नहीं है, और जरूरी नहीं कि "विभाग", केवल संख्या की आवश्यकता हो)। संख्या 99 कोई अन्य पूर्णांक हो सकती है, और दाईं ओर फ़ील्ड की संख्या निश्चित है, इसलिए यह हमेशा दाईं ओर से छठा फ़ील्ड है।
यदि यह संभव हो, तो मैं एक सहसंबंधित सबक्वायरी के साथ एक साधारण एकल चयन कथन के भीतर समाधान पसंद करूंगा।
धन्यवाद।
2 जवाब
2016 में उपलब्ध स्प्लिट स्ट्रिंग का उपयोग करने का एक और तरीका ..
select replace(value,'OU=Department','')
from string_split(@String,',')
where value like '%department%'
यहाँ एक एकल SELECT
समाधान है:
declare @s nvarchar(max) = 'CN=Surname\, Firstname (something),OU=Fixed6,OU=Department56,OU=Fixed5,OU=Fixed4,DC=Fixed3,DC=Fixed2,DC=Fixed'
select reverse(left(reverse(left(@s, charindex(',', @s, charindex('department', @s, 0)) - 1)), patindex('%[a-zA-Z]%', reverse(left(@s, charindex(',', @s, charindex('department', @s, 0)) - 1)))-1))
यह अधिकांश SQL सर्वर संस्करणों के लिए काम करेगा।
संबंधित सवाल
नए सवाल
sql
संरचित क्वेरी भाषा (एसक्यूएल) डेटाबेस को क्वेरी करने के लिए एक भाषा है। प्रश्नों में कोड उदाहरण, तालिका संरचना, नमूना डेटा और DBMS कार्यान्वयन के लिए एक टैग (जैसे MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, आदि) का उपयोग किया जाना चाहिए। यदि आपका प्रश्न केवल एक विशिष्ट DBMS (विशिष्ट एक्सटेंशन / सुविधाओं का उपयोग करता है) से संबंधित है, तो इसके बजाय उस DBMS के टैग का उपयोग करें। एसक्यूएल के साथ टैग किए गए सवालों के जवाब में आईएसओ / आईईसी मानक एसक्यूएल का उपयोग करना चाहिए।