我有一个查询
select *
from tableName
where x='3'
Run Code Online (Sandbox Code Playgroud)
这给了我一些结果,但是我不想看到任何列,其中每一行都是Null。有没有一种简单的方法可以将其过滤掉?
不,没有。
您所追求的是一些语法,例如
select <column list::filter(where all rows are NULL)>
Run Code Online (Sandbox Code Playgroud)
但是,这只是没有意义。这不是一般意义上的。在SSMS或一次性查询工具中使用时,它看起来很酷,但是对于Joe Public在ASP.Net等程序中的日常使用,谁想要不可预测的列数呢?
现在,如果您真的想这样做,可以通过动态SQL来实现,但是必须以这种方式将它编码为ONCE-PER-TABLE。