इस प्रश्न का एक डेटाबेस विशिष्ट उत्तर है।
यदि SQL सर्वर का उपयोग कर रहे हैं:
SELECT column1
, RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) as extracted
, column3
FROM myTable
आप एक CASE
जोड़ सकते हैं कथन या उपयोग NULLIF()
यदि हाइफ़न हमेशा मौजूद न हो:
SELECT column1
, CASE WHEN column2 LIKE '%-%' THEN RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1)
END as extracted
, column3
FROM myTable
या:
SELECT column1
, RIGHT(column2,NULLIF(CHARINDEX('-',REVERSE(column2)),0)-1) as extracted
, column3
FROM myTable
यदि MySQL का उपयोग कर रहे हैं तो बस CHARINDEX()
बदलें करने के लिए LOCATE()
. मेरा मानना है कि Oracle यह INSTR()
है और पहले दो पैरामीटर स्विच किए गए हैं, पहले यह वह स्ट्रिंग है जिसमें आप खोज रहे हैं, फिर वह स्ट्रिंग जिसे आप खोज रहे हैं।