【发布时间】:2016-10-07 14:43:29
【问题描述】:
我正在从事一个 MS SQL 项目,而且对 SQL 来说总体上是新手。
在包含以下内容的查询中:
SELECT DISTINCT u.sUserType
FROM @users u
并且在声明变量之前使用别名(变量'u')(先前已声明@param)。再说一遍:
SELECT
...,
aType.hMy as hAssetType,
...,
...,
...,
...,
etc
FROM @users u
LEFT JOIN somTableName aType on UPPER(u.sAssetType) UPPER(aType.sType)
LEFT JOIN etc
LEFT JOIN etc
我来自 Javascript 背景,其中有“提升”的概念。
问: 是否可以从编译或解释的角度讨论 SQL 查询?
问: 使用后定义变量的查询执行是否与 Javascript 提升相媲美?
问: 另外,这与 SQL 标准的其他实现相比如何?
----- 编辑-----
下面的答案指出别名与变量不同。
一个变量需要先声明才能被引用,但是一个
【问题讨论】:
-
什么是javascript提升?它有什么作用?
-
供你使用
FROM @users,表示该变量是之前声明的 -
另外,SQL 是一种声明性语言
标签: sql-server params hoisting