定义字段的(别名)名称

Defining the (alias) name of a field

我一直在查看我们旧的经典 ASP 系统中的一些代码,该系统在存储过程中构建自己的 SQL 然后执行它 {不寒而栗} .

几个 SELECTion 行包含一个赋值,类似于:

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.

重写其他语法