use*_*490 7 if-statement return snowflake-cloud-data-platform
我正在尝试创建一个与以下基于 T-SQL 的即席查询等效的 Snowflake。
**T-SQL version**
Declare @i int = 0;
If(@i = 0)
PRINT '0';
Else
Begin
PRINT '1'
RETURN;
PRINT '2'
End
**Snowflake version**
Set i = 0;
If($i = 0)
Select '0';
Else
Begin
Select '1'
RETURN;
Select '2'
End
Run Code Online (Sandbox Code Playgroud)
当我从 Snowflake Web UI 运行 Snowflake 查询时,出现错误:
SQL 编译错误:语法错误第 1 行位于位置 0 意外的“IF”
我搜索了雪花文档,但没有找到以下有用的文档:
任何帮助,将不胜感激。
谢谢。
小智 5
Snowflake 不支持条件 T-SQL 语句。它确实支持查询中的条件表达式。
对于条件语句执行,如果条件表达式的使用不足以满足您的需求,请考虑使用带有嵌入式 JavaScript 的Snowflake存储过程。
一个非常简单的存储过程示例,说明了调用时的条件查询执行:
CREATE OR REPLACE PROCEDURE stored_proc_example(TEST_VALUE INTEGER)
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS
$$
// Declaring SQL statement(s) to execute later
var command_1 = "SELECT 1";
var command_2 = "SELECT 2";
if (TEST_VALUE === 0) {
var stmt = snowflake.createStatement({ sqlText: command_1 });
var rs = stmt.execute();
// Omitted: Perform logic with 'rs' rows to prepare a return value
return '1';
} else {
var stmt = snowflake.createStatement({ sqlText: command_2 });
var rs = stmt.execute();
// Omitted: Perform logic with 'rs' rows to prepare a return value
return '2';
}
$$
;
Run Code Online (Sandbox Code Playgroud)
运行为:
SET i=0;
CALL stored_proc_example($i);
SET i=1;
CALL stored_proc_example($i);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22048 次 |
| 最近记录: |