Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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_Sql Server - Fatal编程技术网

SQL:指定列名引用的表

SQL:指定列名引用的表,sql,sql-server,Sql,Sql Server,我在一个SQL查询中从同一个表中选择数据,需要指定我使用的特定列引用的表 基本上:x是不明确的,我需要使其不含糊。 例如我有 我需要以某种方式指定右侧的x是指外部选择语句中的当前x值。目前,它认为它是指它自己,所以它总是返回true。我建议在表中使用别名,以使其非常清楚 您应该使用表别名: SELECT DISTINCT h.x, (SELECT x FROM Y as g WHERE g.x=h.x) FROM Y as h 通过这种方式,您可以创建临时表名称并指向它

我在一个SQL查询中从同一个表中选择数据,需要指定我使用的特定列引用的表

基本上:x是不明确的,我需要使其不含糊。

例如我有


我需要以某种方式指定右侧的x是指外部选择语句中的当前x值。目前,它认为它是指它自己,所以它总是返回true。

我建议在表中使用别名,以使其非常清楚

您应该使用表别名:

SELECT DISTINCT h.x,
     (SELECT x FROM Y as g WHERE g.x=h.x)
     FROM Y as h  
通过这种方式,您可以创建临时表名称并指向它们,这对自联接尤其有用

我们可以在Sql server中使用或不使用“AS”吗:

table_name AS table alias
table_name table_alias

只需使用:

 SELECT DISTINCT yOut.x,
 (SELECT yIN.x FROM Y as yIN WHERE yIN.x=yOut.x) as someColName
 FROM Y as yOut                      ^    ^
                                     |    |
                                     |    |_ [x referring to outer select statement]
[is your table alias ] ______________| 
[from inner select]

我希望这个问题不是真的。不,不是真的。内部语句是语法上有效的东西的超简化版本。不过,内部select语句让人明白了这一点。您不需要添加“as”一词吗?所以它是“从Y到h”
 SELECT DISTINCT yOut.x,
 (SELECT yIN.x FROM Y as yIN WHERE yIN.x=yOut.x) as someColName
 FROM Y as yOut                      ^    ^
                                     |    |
                                     |    |_ [x referring to outer select statement]
[is your table alias ] ______________| 
[from inner select]