Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL空查询结果_Sql_Database_Select - Fatal编程技术网

SQL空查询结果

SQL空查询结果,sql,database,select,Sql,Database,Select,假设我有一张这样的桌子: CREATE TABLE marcas ( id_marca integer, marca character varying )); 我想进行查询,但每个字段中的值都是空的 我知道这样可以解决问题: 选择“作为id”,从marcas中选择“作为marca” 问题是我有很多表,其中一些有超过100个字段。。。 我需要一个SQL语句,它可以获取一个表的所有行字段,但为空,并且非常简单…这里有一个方法可以在每一列中获取NULL。它使用左外连接,但条件失败: sel

假设我有一张这样的桌子:

CREATE TABLE marcas
(
  id_marca integer,
  marca character varying
));
我想进行查询,但每个字段中的值都是空的

我知道这样可以解决问题:

选择“作为id”,从marcas中选择“作为marca”

问题是我有很多表,其中一些有超过100个字段。。。
我需要一个SQL语句,它可以获取一个表的所有行字段,但为空,并且非常简单…

这里有一个方法可以在每一列中获取
NULL
。它使用
左外连接
,但条件失败:

select t.*
from (select 1 as val
     ) v left outer join
     table t
     on 1 = 0;
编辑:

如果要在Access中执行此操作,这是一个挑战。表达式
select 1 as val
不起作用。应:

select t.*
from (select max(1) as val
      from table as t 
     ) as v left outer join
     table as t
     on val = 0;

这也适用于Postgres,但它有不必要的开销。

这里有一种方法可以在每一列中获取
NULL
。它使用
左外连接
,但条件失败:

select t.*
from (select 1 as val
     ) v left outer join
     table t
     on 1 = 0;
编辑:

如果要在Access中执行此操作,这是一个挑战。表达式
select 1 as val
不起作用。应:

select t.*
from (select max(1) as val
      from table as t 
     ) as v left outer join
     table as t
     on val = 0;
这也适用于Postgres,但它有不必要的开销。

如果您使用

SELECT * FROM MARCAS
您将得到一个

===================

我是马卡|马卡

===================

这将返回零结果,但将显示查询表中的所有列。我无法完全理解您想要实现的目标。

如果您使用

SELECT * FROM MARCAS
您将得到一个

===================

我是马卡|马卡

===================


这将返回零结果,但将显示查询表中的所有列。我无法完全理解您试图实现的目标。

如果您只希望列列表而不返回行,那么

SELECT TOP 0 * FROM marcas

如果只需要列列表而不返回行,那么

SELECT TOP 0 * FROM marcas

您使用的是什么sql实现?MSSQL、Postgres等。您真正需要的是什么?表格结构?或者其他什么?您使用的是什么sql实现?MSSQL、Postgres等。您真正需要的是什么?表格结构?或者别的什么?+1我想这是你能得到的最接近的结果。这个查询在PostgreSQL上运行得很好,但在Microsoft Access中尝试执行时出错,它说1=0表达式不被允许。谢谢Gordon的回答。我在这里打开了一个新的线程:在ms access中寻找关于这个问题的特定解决方案。在我的情况下,您的access解决方案不起作用…尽管它在PostgreSQL中再次起作用。+1我认为这与您所能得到的非常接近。此查询在PostgreSQL上运行得非常好,但在尝试在Microsoft access中执行时出错,它表示不允许使用1=0表达式。感谢Gordon的回答。我在这里打开了一个新的线程:在ms access中寻找关于这个问题的特定解决方案。在我的案例中,您的access解决方案不起作用……尽管它在PostgreSQL中再次起作用。