如何在 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
是表示数据缺失的规范方式。
【讨论】:
太棒了,我希望它会像那样简单。谢谢! 这些NULL
s 的类型将是INT
。尽管大多数客户不应该在意,但在某些情况下,可能需要将CAST
s 到NULL
s 到VARCHAR
s 的适当长度。
@JeroenMostert 很高兴知道。由于我们现在只是尝试为 Excel 合并创建空白字段,因此数据类型并不真正适用,但这是供将来参考的有用信息。以上是关于如何在 SQL 查询的结果中添加空白列?的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server - 如何将带有组小计的列添加到查询结果中