【发布时间】:2021-09-21 08:42:05
【问题描述】:
假设我有一个表Employee,其中包含FirstName, LastName, Address 和Position 列。
现在select * from Employee运行时,结果显示如下:
我们可以看到Address 的值对于所有行都是NULL。
如果出现这种情况,我只需要显示三列FirstName、LastName 和Position。
同样,如果 Position 列对于所有值都为空,那么我想排除 Position 列并仅显示 FirstName 和 LastName。
我该怎么做?
【问题讨论】:
-
您只能使用动态 SQL 执行此操作,因为当您
SELECT时,数据集必须明确定义。此外,检查每一行中的每一列并不是一个便宜的操作。就个人而言,我只是建议你不要走这条路。如果每个值都是NULL,也许你真正应该做的是重新考虑你是否真的需要表中的列。 -
不要尝试在数据库级别解决它 - 看看它是否可以在 presentation 层解决,例如在请求此结果集的应用程序或报表构建工具中。在 SQL 中,任何给定的查询都有一个固定的“形状”——列数、它们的名称和类型。
标签: sql sql-server database ssms