如何在 SQL 查询的结果中添加空白列?

Posted

技术标签:

【中文标题】如何在 SQL 查询的结果中添加空白列?【英文标题】:How can I add blank columns to the results of a SQL query? 【发布时间】:2020-10-20 22:04:24 【问题描述】:

我正在处理一个查询,该查询会提取访问过某个地点的人的人口统计信息。但是,此报告所需的字段在数据库中并非全部可用,并且在我导出查询结果后,需要从单独的 Excel 文件中手动添加一些字段。负责合并这两个文件的人询问是否可以创建空白列,以便他们可以更轻松地查看丢失的数据需要去哪里,我不知道该怎么做。显然这些空白列可以在导出的电子表格中创建,但我想知道是否有办法将它们添加到 SQL 查询本身中。

我的SELECT 语句目前看起来像这样——我刚刚添加了 cmets 来标记缺失的字段,这样我就可以跟踪此报告的所有字段的顺序。

SELECT DISTINCT
PersonID,
PersonFName,
PersonLName,
PersonDOB,
VisitID,
--StaffFName,
--StaffLName,
FacilityPhone,
FacilityAddress,

...and so on

由于这两个员工姓名字段在我的数据库中不存在,我显然无法将它们实际包含在SELECT 列表中。但是有没有办法在我的查询结果中仍然包含这两个字段作为空白列?类似于“select [nothing] as StaffFName”的东西?

【问题讨论】:

【参考方案1】:

只需将文字 nulls 添加到 select 子句:

SELECT DISTINCT
    PersonID,
    PersonFName,
    PersonLName,
    PersonDOB,
    VisitID,
    null as StaffFName,
    null as StaffLName,
    FacilityPhone,
    FacilityAddress,
...

或者,如果您愿意,也可以使用空字符串:

...
    '' as StaffFName,
    '' as StaffLName,
...

null 是表示数据缺失的规范方式。

【讨论】:

太棒了,我希望它会像那样简单。谢谢! 这些NULLs 的类型将是INT。尽管大多数客户不应该在意,但在某些情况下,可能需要将CASTs 到NULLs 到VARCHARs 的适当长度。 @JeroenMostert 很高兴知道。由于我们现在只是尝试为 Excel 合并创建空白字段,因此数据类型并不真正适用,但这是供将来参考的有用信息。

以上是关于如何在 SQL 查询的结果中添加空白列?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server - 如何将带有组小计的列添加到查询结果中

如何在 HTML 表格中显示带有分隔列的 SQL 查询结果

如何在sql的查询结果中加入序号

(Sqlserver)将在查询结果插入新表中的时候添加一个自动增长列么 SQL语句怎么写

SQL中如何统计查询结果中某一列重复值的个数?

如何在 Google Dataflow 中添加列以查询结果