全部文档
文档中心DeepModel功能DeepQL查询语句查询变量(即传参)

查询变量(即传参)

DeepQL查询语句支持查询变量即传参,目前主要在查询器中使用。通过$标识变量,变量声明语法

  • 如<str>$var,其中<str>为声明类型,var为变量名,变量var必填

  • 如<optional str>$var,optional表示变量var非必填

DeepModel各属性类型对应DeepQL变量类型

DeepModel属性类型

DeepQL变量类型

文本

<str>$var

多语言文本

<json>$var

布尔值

<bool>$var

整数

<int64>$var

小数

<decimal>$var

日期时间

<cal::local_datetime>$var

枚举值

<str>$var

文件

<json>$var

UUID

<uuid>$var

变量值按JSON键值对中的值格式,各变量类型对应变量值例子

DeepQL变量类型

变量值例子

<str>$var

“REQ_202306_3”

<json>$var

{“en”: “DeepModel”, “zh-cn”: “DeepModel”}

<bool>$var

true/false

<int64>$var

123

<decimal>$var

1.23

<cal::local_datetime>$var

“2023-10-01 12:00:00”


“2023-10-01T12:00:00”

<uuid>$var

“ea5fd52e-666f-11ee-9f32-db6d929ef47d”

查询变量例子

查询指定需求的相关信息,包括:需求的ID、名称、状态,需求负责人的名字、邮箱,组件的名称,以及关联的功能数量

with req_id := <str>$req_id

select Requirement {
    req_id,
    req_name,
    req_status,
    req_owner_name := .req_owner.person_name,
    req_owner_email := .req_owner.system_user.email,
    component_name := .component.name,
    feature_count := count(.<requirement[is Feature])
}
filter .req_id = req_id

查询变量 - 非必填例子

基于查询变量例子,查询指定组件(可为空)的需求信息,即查询变量声明为非必填

注:等于/不等于使用=/!=时,无法对比空值,即操作符两边任一操作数为空时对比结果为空集;使用?=/?!=时可以对比

with comp_code := <optional str>$comp_code

select Requirement {
    req_id,
    req_name,
    req_status,
    req_owner_name := .req_owner.person_name,
    req_owner_email := .req_owner.system_user.email,
    component_name := .component.name,
    feature_count := count(.<requirement[is Feature])
}
filter .component.code ?= comp_code

查询变量 - 数组例子

支持查询变量值为多值,例如基于查询变量例子,查询指定需求(可多选)的相关信息,即查询变量值设置为数组如:[“REQ_202306_3”, “REQ_202306_8”]

with req_ids := <str>json_array_unpack(<json>$req_ids)

select Requirement {
    req_id,
    req_name,
    req_status,
    req_owner_name := .req_owner.person_name,
    req_owner_email := .req_owner.system_user.email,
    component_name := .component.name,
    feature_count := count(.<requirement[is Feature])
}
filter .req_id in req_ids

查询变量 - 日期区间例子

日期区间可以看做一个包含日期最小/大值的数组,例如基于查询变量例子,查询指定日期区间内需求的相关信息,即查询变量值设置为数组如:[“2023-07-01 00:00:00”, “2023-07-08 00:00:00”]

with date_range := <json>$date_range,
min_date := <cal::local_datetime>date_range[0],
max_date := <cal::local_datetime>date_range[1]

select Requirement {
    req_id,
    req_name,
    req_status,
    created_time
}
filter .created_time >= min_date and .created_time <= max_date

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send