SQL 中字段前的“$”符号

"$" symbol before a field in SQL

这是我在公司 GitHub 存储库中找到的查询。我们使用雪花。

我想知道 SQL 中字段前的 $ 是做什么的。我为此 post 更改了字段的名称和 table。而在这个table中,并没有叫business_date的字段。不过,table 还有其他日期和时间戳字段。 $ 是否用于声明变量?

select
        $business_date as business_date
        , t.type
        , t.platform
        , t.country
    from table as t

这是一个Session Variable or SQL Variables

因此您可以执行以下操作:

set schema_name = 'my_db.my_schema';

use schema identifier($schema_name);

标识一个 SQL/Session 变量 (SQL Variables)

在您的示例中,$business_date 是一个 ,而不是一个字段。

所以正在发生的事情是 $business_date 是在该会话语句之外定义的。上面的 select 语句将 return 该查询每一行的变量值。

所以在这条语句之前又发出了一条命令。

-- set variable 
set business_date = '2022-04-16';

-- issue query
select
        $business_date as business_date
        , t.type
        , t.platform
        , t.country
    from table as t

$ 符号是用于标识 SQL 语句中变量的前缀。正如@Simeon Pilgrim 指出的那样,如果您需要动态设置对象的名称,则必须使用标识符函数

select * from identifier($my_table_name);