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 个值的行的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery SQL Select 返回键值对而不是两个单独的列

将列更改为常规列而不是外键

将带有数字的列的类型从 varchar 更改为 int

使用条件将列更改为单独的数据框

将具有唯一值的列转置到行的 SQL 查询

将sql参数更改为日期小数