2016-05-29 2 views
0

Мне нужно получить список имен в соответствии со следующим форматом: «Мистер.» + Имя начальное + фамилия + "." Существует только одна таблица для этогоКак добавить заголовок и подстроку

salesperson (f_name, l_name) 

Что я пытался это;

SELECT 'Mr.' ||' ' || SUBSTRING(f_name,1,1) || ' ' || l_name ||’.’|| 
FROM salesperson; 

Он работает без подстроки или оставил, но если я включаю их.

ответ

2

Использовать concat вместо || Оператор для объединения строк в MySQL. Как и у вас, это будет интерпретироваться как логическое условие OR, поэтому вы получите ошибку.

SELECT CONCAT('Mr.',' ',SUBSTRING(f_name,1,1),' ',l_name,'.') 
FROM salesperson; 

решение Oracle

SELECT 'Mr.'||' '||SUBSTR(f_name,1,1)||' '||l_name||'.' 
FROM salesperson; 
+0

Это дает "ОШИБКА в строке 1: ORA-00909: неверное число аргументов" – Shanishka

+1

вы используете Oracle? В вашем вопросе говорится о MySQL. –

+0

Извинения, я использую Oracle. – Shanishka

0

Это лучшая практика в любом случае, чтобы захватить данные имени в полном объеме, а затем отформатировать его в виде части приложения с языками, которые больше подходит для работы со строками. Это также делает ваш код более многоразовым.

Это сказанное использование этого

SELECT CONCAT("Mr. ",SUBSTRING(f_name, 1, 1) ," ",l_name,".") FROM salesperson 
Смежные вопросы