की अंतिम अनुक्रमणिका मैं सबस्ट्रिंग के साथ अटक गया है।एसक्यूएल सबस्ट्रिंग और
इनपुट पर मुझे एक स्ट्रिंग मिली है जो Sometext (123456)
जैसा दिखता है। अंत में वे अंक यादृच्छिक हैं। मुझे उस स्ट्रिंग से केवल टेक्स्ट प्राप्त करने की आवश्यकता है।
की अंतिम अनुक्रमणिका मैं सबस्ट्रिंग के साथ अटक गया है।एसक्यूएल सबस्ट्रिंग और
इनपुट पर मुझे एक स्ट्रिंग मिली है जो Sometext (123456)
जैसा दिखता है। अंत में वे अंक यादृच्छिक हैं। मुझे उस स्ट्रिंग से केवल टेक्स्ट प्राप्त करने की आवश्यकता है।
इस बारे में कैसे?
DECLARE @Data TABLE (Val VARCHAR(20))
INSERT @Data VALUES ('Sometext (123456)')
INSERT @Data VALUES ('')
INSERT @Data VALUES (NULL)
INSERT @Data VALUES ('S(123456)')
INSERT @Data VALUES ('(123456)')
SELECT
CASE
WHEN CHARINDEX('(', Val) > 0 THEN
RTRIM(SUBSTRING(val,1, CHARINDEX('(', Val) - 1))
ELSE Val
END
FROM @Data
तुम सिर्फ अप करने के लिए पहले भाग चाहते हैं '(' आप
declare @t varchar(50)
set @t = 'function (12343)'
select rtrim(substring(@t,1, charindex('(', @t)-1))
की कोशिश कर सकते यह वास्तव में अपने इनपुट स्ट्रिंग के प्रारूप पर निर्भर करता है, लेकिन यहां एक अलग दृष्टिकोण है का उपयोग करते हुए PATINDEX जब तक यह एक गैर AZ चरित्र से मेल खाता है कि स्ट्रिंग वापस आ जाएगी:।
declare @text varchar(500); set @text = 'Sometext (123456)'
select SUBSTRING(@text, 0, PATINDEX('%[^A-Z]%' , @text))
हम वाक्य को हटाने और संख्या हम इस तरह कर सकते हैं रखना चाहते हैं
0,123,DECLARE @Text VARCHAR(MAX);
SET @Text = 'Sometext (123456)'
SELECT SUBSTRING(@Text, CHARINDEX(' ', @Text) + 1, LEN(@Text)) As TextOutput
परिणाम होगा: (123456)
अधिक उदाहरण हैं। तो आप "Sometext()" बाहर या "Sometext" चाहते हैं? क्या होगा यदि आपके पास "Sometext (123ABC456 )"? – gbn
मेरे पास ब्रेसिज़ के अंदर केवल अंक हैं –