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);
这是我在公司 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);