Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर 2008 - पता फ़ील्ड को अलग करना

एसक्यूएल में स्ट्रिंग पार्सिंग गन्दा है और भंगुर हो जाता है। मुझे आमतौर पर लगता है कि एसक्यूएल के बाहर इस तरह के कार्यों को पूरी तरह से करना सबसे अच्छा है। उस ने कहा, ऊपर दिए गए मिनी-स्पेक को देखते हुए, डेटा को उन क्षेत्रों में पार्स करना संभव है जो आप चाहते हैं:

select 
  left(PostalAddress, charindex('^', PostalAddress) - 1) as street_address,
  left(second_part, len(second_part) - charindex(' ', reverse(second_part))) as suburb,
  right(second_part, charindex(' ', reverse(second_part))) as state,
  reverse(substring(reverse(PostalAddress), 2, 4)) as postal_code
from (
  select
    PostalAddress,
    rtrim(reverse(substring(reverse(PostalAddress), 6, len(PostalAddress) - charindex('^', PostalAddress) - 5))) as second_part
  from Addresses
) as t1

ध्यान दें कि उपरोक्त सबक्वायरी में मैंने जो पतों को बुलाया है, उसके लिए आपको अपना टेबल नाम बदलने की आवश्यकता होगी।

आप इसे अपने नमूना डेटा के विरुद्ध कार्रवाई में देख सकते हैं यहां



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विभाजन समारोह COUNT () DISTINCT का उपयोग करके संभव नहीं है

  2. टी-एसक्यूएल में डेटटाइम को yyyyMMddHHmm में कनवर्ट करें

  3. SQL सर्वर डेटा टूल्स के बाहर SSIS पैकेज चलाने के लिए आपको मूव फाइल टू आर्काइव ऑफ इंटीग्रेशन सर्विसेज या उच्चतर स्थापित करना होगा

  4. SQL सर्वर में विदेशी कुंजी निर्भरता कैसे खोजें?

  5. दो कॉलम डेटा के लिए सभी संभावित संयोजन