Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да разделя една колона на две колони в SQL Server

опитайте това:

изберете случай, когато CHARINDEX('_',име)>0 след това SUBSTRING(име,1,CHARINDEX('_',име)-1) друго име край първо име, CASE WHEN CHARINDEX('_', name)>0 THEN SUBSTRING(name,CHARINDEX('_',name)+1,len(name)) ELSE NULL END as lastnamefrom emp 

можете да използвате командата CASE, за да контролирате дали фамилното име е налично.

SQL Fiddle

Настройка на схемата на MS SQL Server 2008 :

Заявка 1 :

декларирайте @t таблица (id int, име varchar(50))вмъкнете в @t (id,име) стойности( 1 ,'abc_rao')вмъкнете в @t (id,име) стойности( 2, 'nani')вмъкнете в @t (id,име) стойности( 3 ,'hari_babu')вмъкнете в @t (id,име) стойности(4 ,'kalibabu')вмъкнете в @t (id,име) стойности( 5 ,'ab_tan')изберете случай, когато CHARINDEX('_',име)>0 след това SUBSTRING(име,1,CHARINDEX('_',име)-1) друго име край първо име, CASE WHEN CHARINDEX('_',име )>0 THEN SUBSTRING(name,CHARINDEX('_',name)+1,len(name)) ELSE NULL END as lastnamefrom @t 

Резултати :

<предварителен код>| СОБСТВЕНО ИМЕ | ФАМИЛНО ИМЕ ||-----------|----------|| abc | рао || нани | (нула) || хари | бабу || калибабу | (нула) || ab | тен |

АКТУАЛИЗИРАНО:добавен 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. Защо заявката за Microsoft SQL Server 2012 отнема минути в сравнение с JDBC 4.0, но секунди в Management Studio?

  2. Когато вмъквам нови колони в таблица с данни във VB 2010, как да актуализирам базата данни на SQL Server 2008?

  3. Използвате ли тип данни за време на SQL Server в C#.NET приложение?

  4. Каква е паролата по подразбиране за SQL Server 2012, ако не съм поставил парола в настройката?

  5. как да търсите в съхранени процедури на Sql Server 2008 R2 за низ?