SQL для перечисления имени сотрудника и зарплаты один под другим - PullRequest
0 голосов
/ 20 сентября 2018

Простой оператор выбора для таблицы EMPLOYEES получает этот результат.

select FIRST_NAME, SALARY from employees;

FIRST_NAME     SALARY
------------ --------
Steven          24000
Neena           17000
Lex             17000

Но мне нужен вывод в этой форме.

COLUMN_TEXT
------------
Steven
24000
Neena
17000
Lex
17000

Сотрудники FIRST_NAME должныбыть в первом ряду, а затем его / ее SALARY в следующем ряду.

Я пробовал ниже.Но есть ли лучший способ сделать это?

select COLUMN_TEXT from (
select FIRST_NAME as COLUMN_TEXT
       , Row_Number() Over (Order By employee_ID) rn from employees
union all
select to_char(SALARY) as COLUMN_TEXT
      , Row_Number() Over (Order By employee_ID) rn from employees
order by rn
);

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Я бы сделал это так, как ты.Вы также можете использовать unpivot:

select column_text 
  from (select employee_id, first_name, to_char(salary) salary from employees) 
  unpivot (column_text for type in (first_name, salary))
  order by employee_id, type

Демонстрация SQLFiddle

unpivot требует Oracle 11g илипозже.

0 голосов
/ 20 сентября 2018
  1. CHR (10) => LF, перевод строки

попробуйте как показано ниже

select FIRST_NAME || chr(10) SALARY  from employees
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...