опитайте това:
изберете случай, когато 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, за да контролирате дали фамилното име е налично.
Настройка на схемата на 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