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

SQL सर्वर में एक कॉलम को दो कॉलम में कैसे विभाजित करें

इसे आजमाएं:

select 
    case when CHARINDEX('_',name)>0 
         then SUBSTRING(name,1,CHARINDEX('_',name)-1) 
         else name end firstname, 
    CASE WHEN CHARINDEX('_',name)>0 
         THEN SUBSTRING(name,CHARINDEX('_',name)+1,len(name))  
         ELSE NULL END as lastname
from emp

अंतिम नाम उपलब्ध है नियंत्रित करने के लिए आप CASE कमांड का उपयोग कर सकते हैं।

SQL Fiddle

MS SQL Server 2008 स्कीमा सेटअप :

क्वेरी 1 :

declare @t table (id int, name  varchar(50))

insert into @t (id,name) values( 1    ,'abc_rao')
insert into @t (id,name) values( 2    ,'nani')
insert into @t (id,name) values( 3    ,'hari_babu')
insert into @t (id,name) values( 4    ,'kalibabu')
insert into @t (id,name) values( 5    ,'ab_tan')

select 
    case when CHARINDEX('_',name)>0 
         then SUBSTRING(name,1,CHARINDEX('_',name)-1) 
         else name end firstname, 
    CASE WHEN CHARINDEX('_',name)>0 
         THEN SUBSTRING(name,CHARINDEX('_',name)+1,len(name))  
         ELSE NULL END as lastname
from @t

परिणाम :

| FIRSTNAME | LASTNAME |
|-----------|----------|
|       abc |      rao |
|      nani |   (null) |
|      hari |     babu |
|  kalibabu |   (null) |
|        ab |      tan |

अपडेट किया गया:sqlfiddle जोड़ा गया



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटा प्रकार varchar परिवर्तित करने में त्रुटि

  2. SQL का उपयोग करके लगातार दिनांक सीमाओं का पता लगाएं

  3. Uniqueidentifier के साथ डाली गई अंतिम पंक्ति को पुनः प्राप्त करें कि यह पहचान नहीं है

  4. एक उपश्रेणी में एकाधिक परिणामों को एक अल्पविराम से अलग किए गए मान में संयोजित करें

  5. केस स्टेटमेंट का उपयोग करके अपडेट करें