ORACLE: — ВЫБЕРИТЕ имена, удалив пробел после первого слова

#oracle

#Oracle

Вопрос:

ORACLE: — В таблице первые имена выглядят следующим образом

 Binda  E                                                                             
Reven   O                                                                               
Drew  J                                            
ANDAL J                                                                                       
WILL Lee                                            
Chad Hardee  
  

Я хочу выбрать имена в следующем формате

 Binda                                                                               
Reven                                                                                  
Drew                                               
ANDAL                                                                                         
WILL                                              
Chad   
  

Я использую следующий запрос, но не повезло

 SELECT  first_name, SUBSTR(first_name, REGEXP_INSTR('first_name','[^ ] ', 1, 1) ) FROM contact.user_names
  

Пожалуйста, предложите.

Ответ №1:

NVL(substr(first_name, 1, instr(first_name,’ ‘)), first_name)

 with t AS
    (
    SELECT 'Binda  E   ' as first_name FROM dual                                                                          
    union
    SELECT 'Reven   O  ' as first_name FROM dual                                                                             
    union
    SELECT 'Drew  J    ' as first_name FROM dual                                        
    union
    SELECT 'ANDAL J    ' as first_name FROM dual                                                                                   
    union
    SELECT 'WILL Lee   ' as first_name FROM dual                                         
    union
    SELECT 'Chad Hardee' as first_name FROM dual 
    union
    SELECT 'foobar' as first_name FROM dual 

    )
    SELECT NVL(substr(first_name, 1, instr(first_name,' ')), first_name) FROM t
    ;
  

Комментарии:

1. Я использовал «ВЫБРАТЬ NVL(substr(first_name, 1, instr(first_name,’ ‘)), first_name) ИЗ t;»