Nested select statement in SQL Server
为什么下面的内容不起作用?
1 | SELECT name FROM (SELECT name FROM agentinformation) |
我想我对SQL的理解是错误的,因为我本以为这会返回与
1 | SELECT name FROM agentinformation |
号
内部select语句是否创建了外部select语句随后查询的结果集?
您需要为子查询创建别名。
1 | SELECT name FROM (SELECT name FROM agentinformation) a |
或者更明确地说
1 | SELECT a.name FROM (SELECT name FROM agentinformation) a |
号
Joe Stefanelli提供的答案已经是正确的。
1 | SELECT name FROM (SELECT name FROM agentinformation) AS a |
我们需要创建子查询的别名,因为查询需要表对象,我们将从创建别名到子查询。从概念上讲,子查询结果被替换到外部查询中。由于我们在外部查询中需要表对象,所以需要为内部查询创建一个别名。
包含子查询的语句通常采用以下格式之一:
- 其中表达式[非]在(子查询)
- 其中表达式比较_operator[any all](子查询)
- 其中[不]存在(子查询)
检查更多子查询规则和子查询类型。
嵌套子查询的更多示例。
In/Not In–此运算符在执行内部查询后获取内部查询的输出,该输出可以是零个或多个值,并将其发送到外部查询。然后,外部查询获取所有匹配的[in operator]行或不匹配的[not in operator]行。
any–[>any或any运算符获取内部查询生成的值列表,并获取大于列表最小值的所有值。这个
例如,>any(100200300),any运算符将获取所有大于100的值。
例如,>all(100200300),all运算符将获取所有大于300的值。