SQL关键字“AS”的用途是什么? [关闭]

问题描述 投票:-1回答:1

我想知道AS关键字在SQL Server中做了什么。

我知道它是在查询上使用它设置别名时的上下文,但是,我不知道它在存储过程或用户定义函数中使用时的含义。为什么在begin关键字之前需要它?

CREATE FUNCTION dbo.UDF_rangeoddeven( @start int, @end int, @oddeven nvarchar(4)) 
returns @table table
(
    Number int 
) 
AS
BEGIN
    IF @oddeven = 'even'
        WHILE @start <= @end
            BEGIN
                IF @start%2 = 0
                    BEGIN
                    INSERT INTO @table
                    SELECT @start;
                    END
                SET @start = @start + 1; 
            END
    ELSE
        WHILE @start <= @end
            BEGIN
                IF @start%2 = 1
                BEGIN
                    INSERT INTO @table
                    SELECT @start;
                END
                SET @start = @start + 1;
            END
    RETURN
END
GO
sql-server tsql stored-procedures
1个回答
1
投票

这是一大块语言语法。

对于存储的函数/过程(sps),公用表表达式(CTE)和视图,AS作为声明语法的一部分。可以这样想:声明public_part AS私有部分。

sp的公共部分是它的声明:如何访问它。私有部分是代码。 CTE也是如此:

WITH summary AS (
   SELECT id, MAX(val) maxval, MIN(val) minval, SUM(val) sumval
     FROM raw
    GROUP BY ID
)

语法与它在SELECT中使用的方式相反,其中它声明表达式AS名称。

为什么会逆转?也许Stonebraker博士或Date博士知道吗?

某些SQL方言允许在某些上下文中省略AS

© www.soinside.com 2019 - 2024. All rights reserved.