SQL:将查询输出更改为具有两个单独的列,而不是具有 2 个值的行
Posted
技术标签:
【中文标题】SQL:将查询输出更改为具有两个单独的列,而不是具有 2 个值的行【英文标题】:SQL: Change query output to have two separate columns from having rows with 2 values 【发布时间】:2020-11-02 08:39:12 【问题描述】:由于某种原因,我的查询输出将 2 列组合成 1 列,并将 2 个值放在同一行中,如下所示:
PATIENT_NAME
--------------------------------------------------------
INSURANCE
-------------------------
Aimie Pepsodent
Manulife
Aka Fresh
Blue Cross
Apple Addaye
Blue Cross
但我希望它们像我老师的输出一样出现在两个单独的列中:
PATIENT_NAME INSURANCE
-------------- ----------------
Apple Addaye Blue Cross
Roy Alflush No Insurance
Shane Cane No Insurance
有什么办法可以改成这样吗? 现在我的 sql 查询如下所示:
select (fname||' '||lname) patient_name,
(nvl(l4_insurance_cos.company_name, 'No Insurance')) insurance
from l4_patients
left join l4_insurance_cos
on l4_patients.ins_id = l4_insurance_cos.id
order by l4_patients.lname;
【问题讨论】:
【参考方案1】:这是一个纯 SQLPlus 显示问题。行的大小太小,两列都装不下,所以 SQLPlus 将结果分成两行。
您需要调整终端的 linesize 和/或每列的显示宽度 - 默认情况下,它对应于结果集列的最大长度(如果您在查询中连接两列,则为两列的长度,varchars 限制为 4000 字节)。
实际值取决于您的终端和表定义,但这里是一个示例:
set linesize 140 -- allow a total of 140 characters per line
column patient_name format a80 -- 80 characters for column "patient_name"
column insurance format a60 -- 60 characters for column "insurance"
然后,您可以运行查询。
【讨论】:
以上是关于SQL:将查询输出更改为具有两个单独的列,而不是具有 2 个值的行的主要内容,如果未能解决你的问题,请参考以下文章