【问题标题】:How can I add blank columns to the results of a SQL query?如何在 SQL 查询的结果中添加空白列?
【发布时间】: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”的东西?

【问题讨论】:

    标签: sql sql-server select sql-null


    【解决方案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 合并创建空白字段,因此数据类型并不真正适用,但这是供将来参考的有用信息。
    猜你喜欢
    • 2017-02-07
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 2021-03-06
    • 1970-01-01
    相关资源
    最近更新 更多