以数组形式返回SQL

时间:2019-06-19 08:40:48

标签: sql oracle

我有一个用SQLDeveloper编写的简单SQL语句,我希望将每个返回的结果显示为数组,以便可以在前端应用程序(在本例中为聊天机器人)中单独列出(通过它们进行迭代)。现在,当我运行该语句时,将显示所有返回的结果。

有人对此有任何简单的解决方案吗?

SELECT STRING job_class_title, entry_salary_beg, entry_salary_end, job_duties 
From SQLLEGENDS 
Where Entry_salary_beg >= 80000 and entry_salary_end <= 120000
  And DRIVERS_LICENSE_REQ = 'P' and JOB_DUTIES like '%Senior%';

1 个答案:

答案 0 :(得分:0)

  

我希望将每个返回的结果显示为数组

将每一列作为单独的数组返回:

SELECT CAST( COLLECT( string           ) AS SYS.ODCIVARCHAR2LIST ) AS job_class_title,
       CAST( COLLECT( entry_salary_beg ) AS SYS.ODCINUMBERLIST   ) AS entry_salary_beg,
       CAST( COLLECT( entry_salary_end ) AS SYS.ODCINUMBERLIST   ) AS entry_salary_end,
       CAST( COLLECT( job_duties       ) AS SYS.ODCIVARCHAR2LIST ) AS job_duties
FROM   SQLLEGENDS 
WHERE  Entry_salary_beg    >= 80000
AND    entry_salary_end    <= 120000
AND    DRIVERS_LICENSE_REQ = 'P'
AND    JOB_DUTIES like '%Senior%';

将每一行作为数组返回:

SELECT SYS.ODCIVARCHAR2LIST(
         string,
         TO_CHAR( entry_salary_beg ),
         TO_CHAR( entry_salary_end ),
         job_duties
       ) AS array
FROM   SQLLEGENDS 
WHERE  Entry_salary_beg    >= 80000
AND    entry_salary_end    <= 120000
AND    DRIVERS_LICENSE_REQ = 'P'
AND    JOB_DUTIES like '%Senior%';

但是,我真的不希望您这样做。从现有查询返回结果集应该是实现您所希望的方式,然后只需要逐行遍历结果集,而不是使用数组来使结果复杂化。

您需要更改chatbot的行为,而不是SQL查询的行为。