定义字段的(别名)名称

时间:2018-10-05 15:43:35

标签: sql sql-server alias

我一直在研究我们的旧经典ASP系统中的一些代码,该系统在存储过程中构建自己的SQL,然后执行 {shudders}

几条SELECT离子行包含一个分配,类似于:

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
    ...

2 个答案:

答案 0 :(得分:1)

否,以下代码都是同义词:

SELECT one = 1;
SELECT 1 one;
SELECT 1 AS one;
SELECT 'one' = 1; --this is deprecated, don't use it.

您使用的(除了最后一个)通常不在首选项中。我个人使用AS。原因之一是,我可以轻松地告诉查询返回数据集的查询,以及那些为变量分配值的查询。

答案 1 :(得分:0)

您给出的两个示例是相同的。但是,当您浏览旧代码时,您可能还会在my_field之前找到带有@符号的变体,如下所示:

SELECT
    @my_field = CASE WHEN value = whatever THEN 1 ELSE 0 END

在这种情况下,为变量@my_field分配了一个值,但未选择任何内容。您无法使用AS @myfield将其重写为其他语法。