sql >> Database >  >> RDS >> Sqlserver

Hoe een kolom in twee kolommen te splitsen in SQL Server

probeer dit:

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

je kunt het CASE-commando gebruiken om te controleren of de achternaam beschikbaar is.

SQL Fiddle

MS SQL Server 2008-schema instellen :

Query 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

Resultaten :

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

BIJGEWERKT:sqlfiddle toegevoegd



  1. mysql-query om alle mogelijke soortgelijke combinaties te vinden die beginnen met en eindigen met (vereenvoudigd duplicaat)

  2. Django South-fout:AttributeError:'DateTimeField'-object heeft geen kenmerk 'model'`

  3. Hoe bestanden veilig op een server op te slaan

  4. Query's uitvoeren op grote dataset op Join (15+ miljoen rijen)