SQL筛选器空列

Ste*_*eve 1 sql sql-server

我有一个查询

select *
from tableName
where x='3'
Run Code Online (Sandbox Code Playgroud)

这给了我一些结果,但是我不想看到任何列,其中每一行都是Null。有没有一种简单的方法可以将其过滤掉?

Ric*_*iwi 5

不,没有。

您所追求的是一些语法,例如

select <column list::filter(where all rows are NULL)>
Run Code Online (Sandbox Code Playgroud)

但是,这只是没有意义。这不是一般意义上的。在SSMS或一次性查询工具中使用时,它看起来很酷,但是对于Joe Public在ASP.Net等程序中的日常使用,谁想要不可预测的列数呢?

现在,如果您真的想这样做,可以通过动态SQL来实现,但是必须以这种方式将它编码为ONCE-PER-TABLE。