定义字段的(别名)名称
Defining the (alias) name of a field
我一直在查看我们旧的经典 ASP 系统中的一些代码,该系统在存储过程中构建自己的 SQL 然后执行它 {不寒而栗} .
几个 SELECT
ion 行包含一个赋值,类似于:
SELECT
my_field = CASE WHEN value = whatever THEN 1 ELSE 0 END
...
这与使用标准 AS
别名之间有什么区别(或我需要注意的任何事项)吗?...
SELECT
CASE WHEN value = whatever THEN 1 ELSE 0 END AS my_field
...
不是,下面的代码都是同义词:
SELECT one = 1;
SELECT 1 one;
SELECT 1 AS one;
SELECT 'one' = 1; --this is deprecated, don't use it.
你使用的(除了最后一个),通常是下首选项。就个人而言,我使用 AS
。一个原因是我可以轻松地告诉查询 return 数据集,以及那些为变量赋值的数据集。
你给出的2个例子是一样的。但是,当您浏览旧代码时,您可能还会发现在 my_field
之前带有 @ 符号的变体,如下所示:
SELECT
@my_field = CASE WHEN value = whatever THEN 1 ELSE 0 END
在这种情况下,名为 @my_field
的变量被分配了一个值,但没有选择任何内容。您不能使用 AS @myfield
.
重写其他语法
我一直在查看我们旧的经典 ASP 系统中的一些代码,该系统在存储过程中构建自己的 SQL 然后执行它 {不寒而栗} .
几个 SELECT
ion 行包含一个赋值,类似于:
SELECT
my_field = CASE WHEN value = whatever THEN 1 ELSE 0 END
...
这与使用标准 AS
别名之间有什么区别(或我需要注意的任何事项)吗?...
SELECT
CASE WHEN value = whatever THEN 1 ELSE 0 END AS my_field
...
不是,下面的代码都是同义词:
SELECT one = 1;
SELECT 1 one;
SELECT 1 AS one;
SELECT 'one' = 1; --this is deprecated, don't use it.
你使用的(除了最后一个),通常是下首选项。就个人而言,我使用 AS
。一个原因是我可以轻松地告诉查询 return 数据集,以及那些为变量赋值的数据集。
你给出的2个例子是一样的。但是,当您浏览旧代码时,您可能还会发现在 my_field
之前带有 @ 符号的变体,如下所示:
SELECT
@my_field = CASE WHEN value = whatever THEN 1 ELSE 0 END
在这种情况下,名为 @my_field
的变量被分配了一个值,但没有选择任何内容。您不能使用 AS @myfield
.