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

sql एक व्यक्ति के नाम की एक स्ट्रिंग को अलग करने और आद्याक्षर आउटपुट करने के लिए

यह "फर्स्टनाम लास्टनाम" और "फर्स्टनाम मिडलनाम लास्टनाम" संयोजन दोनों के लिए काम करना चाहिए।

DECLARE @name AS NVARCHAR(50) 
SET @name = 'Firstname Middle Lastname' 


SELECT SUBSTRING(@name, 1, 1) +     --First initial
    SUBSTRING(@name, CHARINDEX(' ', @name) + 1, 1) +    --Middle/Last initial
    CASE WHEN 0 <>  CHARINDEX(' ', @name, CHARINDEX(' ', @name) + 1) -- More than two words 
        THEN SUBSTRING(@name, CHARINDEX(' ', @name, CHARINDEX(' ', @name) + 1) + 1, 1)  --Last initial
    ELSE '' --Have to add empty string to avoid NULLing entire result
    END

बेशक, यदि उपयोगकर्ताओं के पास में . स्थान है उनके नामों में से किसी एक कारण से आपको इसे पार्स करने में कोई समस्या होगी, लेकिन मुझे संदेह है कि अलग-अलग क्षेत्रों में आपके नाम संग्रहीत नहीं करते समय भी ऐसा ही होगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रैंड () SQL सर्वर में उदाहरण

  2. SQL:SQL सर्वर में डुप्लिकेट रिकॉर्ड हटाना

  3. कॉलम मान के अनुसार पंक्तियों को एन टाइम्स दोहराएं

  4. SQL सर्वर 2008 में डेटाटाइम शनिवार या रविवार होने पर कैसे जांचें?

  5. कभी-कभी SqlException प्राप्त करना:टाइमआउट समाप्त हो गया