Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 从表A中选择“”_Sql_Sql Server 2008 - Fatal编程技术网

Sql 从表A中选择“”

Sql 从表A中选择“”,sql,sql-server-2008,Sql,Sql Server 2008,到底是什么 select '' from TableA 是吗 当我在给定的表上运行它时,我得到了表中所有行的一条记录,这些行的标题明显为空,标题为“No column name”,因为没有使用别名。 我看到这个查询在“notexists”语句中用作子查询 这种查询在什么时候有用?用这种方式进行查询是一种好的做法吗 例如,当我第一次看到它时,我以为它会返回一个空行,但实际上它返回表中的所有行,它们都是空的 我环顾四周,没有找到答案。 谢谢在检查表中是否存在某些内容时,通常会选择任意值而不是实际

到底是什么

select '' from TableA 
是吗

当我在给定的表上运行它时,我得到了表中所有行的一条记录,这些行的标题明显为空,标题为“No column name”,因为没有使用别名。 我看到这个查询在“notexists”语句中用作子查询

这种查询在什么时候有用?用这种方式进行查询是一种好的做法吗

例如,当我第一次看到它时,我以为它会返回一个空行,但实际上它返回表中的所有行,它们都是空的

我环顾四周,没有找到答案。
谢谢

在检查表中是否存在某些内容时,通常会选择任意值而不是实际列,因为它会影响执行计划。如果选择实际列,执行计划会考虑该列,并且可能需要更长的时间,即使您不使用该列

最常见的情况是,我看到1:

如果您只关心是否有任何行,您可以缩短查询,而不是获取所有行。。。尽管我怀疑EXISTS语句会在找到任何行后立即停止

IF EXISTS (SELECT TOP 1 '' FROM TableA)

如果出于任何原因希望在查询中添加静态值,则可以使用此语法

例如


这将自动为数据库中的所有表创建查询

当它仅检查某个行是否存在时,它在EXISTS或NOT EXISTS中很有用conditions@Lamak非常感谢。我也尝试检查查询执行计划,以便查看幕后情况,但没有正确的权限。它只是检查是否有任何记录返回,与从表中选择1相同,并将其与exists一起使用可能会提高性能,因为如果它找到任何结果,则会移动到下一部分,您真的不必担心它返回的所有行的值都是空的谢谢@Fenton我也尝试过检查查询执行计划来查看幕后情况,但没有正确的权限
IF EXISTS (SELECT TOP 1 '' FROM TableA)
SELECT 
    'SELECT TOP 10 * FROM '+name 
from sys.objects 
where type = 'U'