tencent cloud

数据开发治理平台 WeData

产品动态
动态发布记录(2026年)
产品简介
产品概述
产品优势
产品架构
产品功能
应用场景
购买指南
计费概述
产品版本购买说明
执行资源购买说明
购买方式
欠费说明
退费说明
准备工作
账号和权限管理概述
添加白名单/安全组(可选)
通过 Microsoft Entra ID(Azure AD)单点登录(SSO)WeData
操作指南
管理控制台
项目管理
数据集成
Studio
数据开发
数据分析
数据科学
数据治理(with Unity Semantics)
API 文档
History
Introduction
API Category
Making API Requests
Smart Ops Related Interfaces
Project Management APIs
Resource Group APIs
Data Development APIs
Data Asset - Data Dictionary APIs
Data Development APIs
Ops Center APIs
Data Operations Related Interfaces
Data Exploration APIs
Asset APIs
Metadata Related Interfaces
Task Operations APIs
Data Security APIs
Instance Operation and Maintenance Related Interfaces
Data Map and Data Dictionary APIs
Data Quality Related Interfaces
DataInLong APIs
Platform Management APIs
Data Source Management APIs
Data Quality APIs
Platform Management APIs
Asset Data APIs
Data Source Management APIs
Data Types
Error Codes
WeData API 2025-08-06
服务等级协议
相关协议
隐私协议
数据处理和安全协议
联系我们
词汇表

SQL 标签语句

PDF
聚焦模式
字号
最后更新时间: 2024-11-01 16:31:31
WeData 的开发和编排空间支持 SQL 标签语句功能,用户可以在 SQL 中使用 if-else、for 循环等逻辑判断,从而用更简单的代码实现更加复杂的业务逻辑。

脚本开头特殊标识

--SQL/VMSCRIPT
#set( $cnt = 10 )
select $cnt;

赋值语句和操作符

--SQL/VMSCRIPT
#set( $cnt = 10 )
#set( $cnt = $cnt + 1 )
select $cnt;

操作符

操作符
运算符
示例
Object Equivalence
==
#if( $foo == $bar )
Not Equals
!=
#if( $foo != $bar )
Less Than or Equal To
<=
#if( $foo <= 42 )
Less Than
<
#if( $foo < 42 )
Greater Than or Equal To
>=
#if( $foo >= 42 )
Greater Than
>
#if( $foo > 42 )
Equals String
==
#if( $foo == "bar" )
Equals Number
==
#if( $foo == 42 )
Boolean NOT
!
#if( !$foo )

for-each 语句

整数形式

--SQL/VMSCRIPT
#set( $cnt = 10 )
#set( $cnt = $cnt + 1 )
#foreach($i in $_range.of(1, $cnt, 1))
select $cnt,$i;
#end

列表模式

--SQL/VMSCRIPT
#foreach($table in ["test_user_info_table", "test_issue_info_table"])
select '$table' table_name, count(1) cnt from $table where substring(create_time, 1, 7) = '2022-11'
#if($foreach.last != true)
union all
#end
#end

条件判断语句

使用赋值变量

--SQL/VMSCRIPT
--此语句会执行age>2的分支
#set( $flag_1 = 0 )
#set( $flag_2 = 0 )
select * from default.demo_hive
where
#if($flag_1 == 1)
id = 1;
#elseif( $flag_2 == 1)
id = 2;
#else
id >2;
#end
使用系统参数,系统参数必须使用 ${variable_name} 格式。
这里变量 flag_1和 flag_2 在工作流任务调度中都设置为了0。
--SQL/VMSCRIPT
--此语句会执行age>2的分支
select * from default.demo_hive
where
#if(${flag_1} == 1)
age = 1;
#elseif(${flag_2} == 1)
age = 2;
#else
age >2;
#end
使用系统变量+时间变量,其中 dt、dt_pre_7d、dt_pre_1d 为创建的时间参数变量。
--SQL/VMSCRIPT
--此语句会执行else的分支
select * from default.user_info
where
#if(${is_reload} == "1")
create_time <= ${dt};
#elseif(${is_deltareload} == "1")
create_time between ${dt_pre_7d} and ${dt};
#else
create_time between ${dt_pre_1d} and ${dt};
#end

使用范围说明

可以在 WeData 的开发空间和编排空间中使用 SQL 标签。

条件判断语句

实现使用了 velocity,相关的文档可参考 Apache Velocity Engine VTL Reference
注意:
SQL 标签语句对于新购买的调度资源组该功能会自动生效。对于老的调度资源组需要产研团队进行协助重启升级。建议购买新的调度资源组,然后绑定项目。


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈