2013-08-12 4 views
-1

Я хочу скопировать имя столбца и его значение как New York в запрос выбора с разделителем канала. Например. Emp стол с колонками EmpId, EmpName, Salary. Я хочу, чтобы выход, такие какЗначение жесткого кода для имени столбца и столбца в запросе выбора с разделителем канала

Select EmpId ||'|'|| 
     EmpName ||'|'|| 
     'NewYork' as City ||'|'|| 
     Salary 
from Emp 

Здесь я хочу City столбец вывода запроса и его значение должно быть 'NewYork' для каждой записи.

Здесь я получаю ошибку как "FROM keyword not found where expected". Когда я использую запятую вместо разделителя труб, я получаю результат, но не с трубкой. Пожалуйста, порекомендуйте. Заранее спасибо.

+2

Псевдоним «как Город» находится в неправильном месте, удалите его. Вы можете использовать только конечный результат конкатенации. Поэтому вы должны поместить псевдоним после «Заработок» и «Зарплата» только в вашем случае. –

+1

Запятая используется для разделения имен колонок или выражений в списке SELECT друг от друга. С другой стороны, труба используется для конкатенации строк/столбцов и возврата одного значения/столбца. Например. 'SELECT a, b FROM tableX' даст два столбца -' a' и 'b'; тогда как 'SELECT a || b FROM tableX' даст один столбец, который представляет собой конкатенацию значений в столбцах 'a' и' b'. Что именно вы хотите здесь? – Rachcha

ответ

0
with emps as (
    select 1 as id, 'Smith' as name, 2000 as salary from dual 
    union 
    select 2, 'Jones', 2200 from dual 
) 
select 
    id || '|' || name as record1, 
    id || '|' || name || '|NewYork|' || salary as record2, 
    'NewYork' as city 
from emps;