【问题标题】:How to exclude the column if all the values in column are null in SQL Server?如果 SQL Server 中列中的所有值都为空,如何排除该列?
【发布时间】:2021-09-21 08:42:05
【问题描述】:

假设我有一个表Employee,其中包含FirstName, LastName, AddressPosition 列。

现在select * from Employee运行时,结果显示如下:

我们可以看到Address 的值对于所有行都是NULL

如果出现这种情况,我只需要显示三列FirstNameLastNamePosition

同样,如果 Position 列对于所有值都为空,那么我想排除 Position 列并仅显示 FirstNameLastName

我该怎么做?

【问题讨论】:

  • 您只能使用动态 SQL 执行此操作,因为当您 SELECT 时,数据集必须明确定义。此外,检查每一行中的每一列并不是一个便宜的操作。就个人而言,我只是建议你不要走这条路。如果每个值都是NULL,也许你真正应该做的是重新考虑你是否真的需要表中的列。
  • 不要尝试在数据库级别解决它 - 看看它是否可以在 presentation 层解决,例如在请求此结果集的应用程序或报表构建工具中。在 SQL 中,任何给定的查询都有一个固定的“形状”——列数、它们的名称和类型。

标签: sql sql-server database ssms


【解决方案1】:

这可以使用

IF EXISTS (SELECT * FROM EMPLOYEE WHERE Address IS NOT NULL)
BEGIN
    SELECT * FROM EMPLOYEE
END
ELSE
BEGIN
    SELECT FirstName,Lastame,Position FROM EMPLOYEE
END

【讨论】:

    猜你喜欢
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    相关资源
    最近更新 更多