मैं यह बिल्कुल नहीं कहूंगा कि यह आसान या स्पष्ट है, लेकिन केवल दो हाइफ़न के साथ, आप स्ट्रिंग को उलट सकते हैं और यह बहुत कठिन नहीं है:
with t as (select 'LD-23DSP-1430' as val)
select t.*,
LEFT(val, charindex('-', val) - 1),
SUBSTRING(val, charindex('-', val)+1, len(val) - CHARINDEX('-', reverse(val)) - charindex('-', val)),
REVERSE(LEFT(reverse(val), charindex('-', reverse(val)) - 1))
from t;
इसके अलावा और आप split()
. का उपयोग करना चाह सकते हैं इसके बजाय।