【问题标题】:Assigning value to variable in snowflake为雪花中的变量赋值
【发布时间】:2021-12-14 13:27:25
【问题描述】:

如何在雪花中编写以下查询

声明名字 varchar; 声明姓氏 varchar;

select firstName =FirstNameColumn,lastName =LastNameColumn from User;

【问题讨论】:

  • 嗨,你的意思是这样的,使用 SET,创建表 user1 (FirstNameColumn varchar2(100),LastNameColumn varchar2(100));插入 user1 值('他','K'); SET firstName = '他';设置姓氏 = 'K';从用户中选择 firstName =FirstNameColumn,lastName =LastNameColumn; select * from user1 where FirstNameColumn = $firstName and LastNameColumn = $lastname;

标签: snowflake-cloud-data-platform


【解决方案1】:

你不需要声明会话变量,你可以使用 SET 命令来初始化/赋值给一个会话变量:

https://docs.snowflake.com/en/sql-reference/session-variables.html#initializing-variables

create table names (fname varchar, lname varchar ) as select 'Gokhan','Atil';

set first_name = (select fname from names);
set last_name = (select lname from names);

select $first_name, $last_name;

+-------------+------------+
| $FIRST_NAME | $LAST_NAME |
+-------------+------------+
| Gokhan      | Atil       |
+-------------+------------+

不幸的是,像这样分配多个 varchar 变量时存在错误:

set (first_name, last_name) = (select fname, lname from names);

Assignment to 'FIRST_NAME' not done because value exceeds size limit for variables. Its size is 16,777,216; the limit is 256 (internal storage size in bytes).

【讨论】:

    【解决方案2】:

    set my_variable2 = (select t2.v from t2 where t2.c = 'four'); 选择 $my_variable2;

    【讨论】:

      猜你喜欢
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-19
      • 2021-06-19
      • 2013-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多