SQL:指定列名引用的表
我在一个SQL查询中从同一个表中选择数据,需要指定我使用的特定列引用的表 基本上:x是不明确的,我需要使其不含糊。 例如我有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 通过这种方式,您可以创建临时表名称并指向它
我需要以某种方式指定右侧的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]