У меня есть таблица с полем FirstName, в которой есть записи, содержащие псевдонимы. Например

John "Johnny"

Я хотел бы вытащить «Johnny» в поле NickName с псевдонимом. Я не совсем понимаю, как это сделать.

Firstname   Nickname
John        Johnny
0
Geoff 19 Фев 2016 в 21:23

2 ответа

Лучший ответ

Как насчет

select regexp_replace(name, ' ".+?"$', '') FirstName,
substring(name from '"(.+?)"') NickName
from names

http://sqlfiddle.com/#!15/6728f/1

1
aquinas 19 Фев 2016 в 18:43

Попробуйте что-то вроде этого:

select 
    case when NAME(' ',name)>0 
         then SUBSTRING(name,1,CHARINDEX(' ',name)-1) 
         else name end firstname, 
    CASE WHEN NAME(' ',name)>0 
         THEN SUBSTRING(name,CHARINDEX(' ',name)+1,len(name))  
         ELSE NULL END as nickname
from Customers
0
GabrielVa 19 Фев 2016 в 18:33