历史版本8 :SQL 数据集参数写法示例 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 功能简介

本文提供 实时数据 中使用 SQL 数据集参数的 SQL 写法示例。

注:不同数据库的写法不同,本文仅提供参考示例。

1.2 注意事项

1)where 1=1 表示条件永真,防止没有之后的参数条件时,where 多出而导致出错。

2)<parameter> and "htlx" in ('${文本参数1}') </parameter>为添加的合同类型参数,该添加的parameter用于在中间参数为空时,获取合同类型的所有值。 

3)数据准备 sql 表参数中,年月参数、年季度参数、年月区间参数中的月份和季度参数类型为文本类型,取值为(1~12)和(1~4),不可以写成 01 这种格式的,否则仪表板中的控件读出数据会不正确。

2.Microsoft SQL Server编辑

2.1 日期类参数

日期类型SQL 示例
推荐设置的参数类型
年份SELECT * FROM 互联网访问数据 WHERE YAER(销售日期)='${年份}'文本
年月

SELECT * FROM 互联网访问数据 WHERE YAER(销售日期)='${年份}' and month(销售日期)='${月份}'

文本
日期
SELECT * FROM 互联网访问数据 WHERE CAST(统计日期 as varchar) in ('${日期}')日期
日期区间SELECT * FROM 互联网访问数据 WHERE 统计日期 between '${起始日期}' and '${结束日期}'日期
年月区间

SELECT * FROM 互联网访问数据 WHERE format(统计日期,'yyyyMM') >=concat('${开始年份}',case when '${开始月份}'>9 then '${开始月份}'else concat(0,'${开始月份}') end ) and format(统计日期,'yyyyMM') <=concat('${截至年份}',case when '${截至月份}'>9 then '${截至月份}'else concat(0,'${截至月份}') end )

文本
年季度

SELECT * FROM 互联网访问数据 WHERE CAST(YEAR(注册时间) as varchar) = '${年份}' and CAST(FLOOR((MONTH(注册时间)+2)/3) as varchar) = '${季度}'

文本

2.2 文本类参数

文本类型SQL 示例推荐设置的参数类型

参数只能取一个值

SELECT * FROM 互联网访问数据 WHERE  合同类型='${文本参数}'文本
参数可以取多个值SELECT * FROM 互联网访问数据 WHERE  合同类型 in ('${文本参数}')文本
当参数为空时,显示全部,参数有值时,显示参数值

select *  from new_dian  where  1=1 ${if(len(所属大区2) == 0,"","and  所属大区 in ('" + 所属大区2 + "')")}

或者:select * from new_dian where 1=1 <parameter> and 所属大区 in ('${所属大区}')</parameter>

文本

3. Oracle(teradata类似)编辑

3.1 日期类参数

日期类型SQL 示例
推荐设置的参数类型
年份

SELECT * FROM 互联网访问数据 WHERE TO_CHAR("销售日期,"'YYYY')='${年份A}'

文本
年月

SELECT * FROM new_salesdetail WHERE TO_CHAR("销售日期",'YYYY')='${年份}' and EXTRACT(MONTH FROM "销售日期")='${月份}'

文本
日期

SELECT * FROM new_salesdetail WHERE TO_CHAR("销售日期",'YYYY-MM-DD') in ('${日期参数}')

日期
日期区间

SELECT * FROM new_salesdetail WHERE TO_CHAR("销售日期",'YYYY-MM-DD') between '${起始日期}' and '${结束日期}'

日期
年月区间

SELECT * FROM new_salesdetail  WHERE TO_CHAR("销售日期",'YYYYMM') >=concat('${开始年份}',case when '${开始月份}'>9 then '${开始月份}'else concat(0,'${开始月份}') end ) and TO_CHAR("销售日期",'YYYYMM') <=concat('${截止年份}',case when '${截止月份}'>9 then '${截止月份}' else concat(0,'${截止月份}') end )

文本
年季度

SELECT * FROM DEMO_CONTRACT WHERE TO_CHAR("注册时间",'YYYY')='${年份}' and FLOOR((EXTRACT(MONTH FROM "注册时间")+2)/3)='${季度}'

文本



3.2 文本类参数

文本类型SQL 示例推荐设置的参数类型

参数只能取一个值

SELECT * FROM demo_contract WHERE "合同类型"='${文本参数}'

文本
参数可以取多个值

SELECT * FROM demo_contract WHERE "合同类型" in ('${文本参数}')

文本
当参数为空时,显示全部,参数有值时,显示参数值

SELECT * FROM demo_contract WHERE 1=1 <parameter> and "合同类型" in ('${文本参数}') </parameter>

文本

4. Presto编辑

4.1 日期类参数

日期类型SQL 示例
推荐设置的参数类型
年份

SELECT * FROM new_salesdetail WHERE cast(year(销售日期) as varchar)='${年份}'

文本
年月

SELECT * FROM new_salesdetail WHERE TO_CHAR("销售日期",'yyyy')='${年份}' and cast(EXTRACT(MONTH FROM "销售日期") as varchar)='${月份}'

文本
日期

SELECT * FROM new_salesdetail WHERE TO_CHAR("销售日期",'yyyy-mm-dd') in ('${日期参数}')

日期
日期区间

SELECT * FROM new_salesdetail WHERE TO_CHAR("销售日期",'yyyy-mm-dd') between '${起始日期}' and '${结束日期}'

日期
年月区间

SELECT * FROM DEMO_CONTRACT WHERE TO_CHAR("注册时间",'yyyymm') >=concat('${开始年份}',case when cast('${开始月份}' as tinyint)>9 then '${开始月份}' else concat('0','${开始月份}') end ) and TO_CHAR("注册时间",'yyyymm') <=concat('${{截至年份}',case when cast('${截至月份}' as tinyint)>9 then '${截至月份}' else concat('0','${截至月份}') end )

文本
年季度

SELECT * FROM DEMO_CONTRACT WHERE TO_CHAR("注册时间",'yyyy')='${年份}' and cast(FLOOR((EXTRACT(MONTH FROM "注册时间")+2)/3) as varchar)='${季度}'

文本

4.2 文本类参数

文本类型SQL 示例推荐设置的参数类型

参数只能取一个值

SELECT * FROM demo_contract WHERE "合同类型"='${文本参数}'

文本
参数可以取多个值

SELECT * FROM demo_contract WHERE "合同类型" in ('${文本参数}')

文本
当参数为空时,显示全部,参数有值时,显示参数值

SELECT * FROM demo_contract WHERE 1=1 <parameter> and "合同类型" in ('${文本参数}') </parameter>

文本

5. Postgresql编辑

5.1 日期类参数

日期类型SQL 示例
推荐设置的参数类型
年份

SELECT * FROM new_salesdetail WHERE TO_CHAR("销售日期",'YYYY')='${年份A}'

文本
年月

SELECT * FROM new_salesdetail WHERE TO_CHAR("销售日期",'YYYY')='${年份}' and EXTRACT(MONTH FROM "销售日期")='${月份}'

文本
日期

SELECT * FROM new_salesdetail WHERE TO_CHAR("销售日期",'YYYY-MM-DD') in ('${日期参数}')

日期
日期区间

SELECT * FROM new_salesdetail WHERE TO_CHAR("销售日期",'YYYY-MM-DD') between '${起始日期}' and '${结束日期}'

日期
年月区间

SELECT * FROM DEMO_CONTRACT WHERE TO_CHAR("注册时间",'yyyymm') >=concat('${开始年份}',case when cast('${开始月份}' as tinyint)>9 then '${开始月份}' else concat('0','${开始月份}') end ) and TO_CHAR("注册时间",'yyyymm') <=concat('${{截至年份}',case when cast('${截至月份}' as tinyint)>9 then '${截至月份}' else concat('0','${截至月份}') end )

文本
年季度

SELECT * FROM DEMO_CONTRACT WHERE TO_CHAR("注册时间",'YYYY')='${年份}' and FLOOR((EXTRACT(MONTH FROM "注册时间")+2)/3) ='${季度}'

文本

5.2 文本类参数

文本类型SQL 示例推荐设置的参数类型

参数只能取一个值

SELECT * FROM demo_contract WHERE "合同类型"='${文本参数}'

文本
参数可以取多个值

SELECT * FROM demo_contract WHERE "合同类型" in ('${文本参数}')

文本
当参数为空时,显示全部,参数有值时,显示参数值

SELECT * FROM demo_contract WHERE 1=1 <parameter> and "合同类型" in ('${文本参数}') </parameter>

文本

6. APACHE IMPALA编辑

6.1 日期类参数

日期类型SQL 示例
推荐设置的参数类型



年份

SELECT * FROM xxxx WHERE cast(year(销售日期) as STRING)='${年份}'

文本
年月

SELECT * FROM xxxx WHERE cast(year(销售日期) as STRING)='${年份}' and cast(month(销售日期) as STRING)='${月份}'

文本
日期

SELECT * FROM xxxx WHERE 注册时间 in ('${日期参数}')

日期
日期区间

SELECT * FROM xxxx WHERE 注册时间 between '${起始日期}' and '${结束日期}'

日期
年月区间

SELECT * FROM xxxx WHERE TO_CHAR("注册时间",'yyyymm') >=concat('${开始年份}',case when cast('${开始月份}' as tinyint)>9 then '${开始月份}' else concat('0','${开始月份}') end ) and TO_CHAR("注册时间",'yyyymm') <=concat('${{截至年份}',case when cast('${截至月份}' as tinyint)>9 then '${截至月份}' else concat('0','${截至月份}') end )

文本
年季度

SELECT * FROM xxxx WHERE cast(year(注册时间) as STRING)='${年份}' and cast(truncate((month(注册时间)+2)/3) as STRING)='${季度}'


文本

6.2 文本类参数

文本类型SQL 示例推荐设置的参数类型

参数只能取一个值

SELECT * FROM demo_contract WHERE 合同类型='${文本参数}'

文本
参数可以取多个值

SELECT * FROM demo_contract WHERE 合同类型 in ('${文本参数1}')

文本
当参数为空时,显示全部,参数有值时,显示参数值

SELECT * FROM demo_contract WHERE 1=1 <parameter> and 合同类型 in ('${文本参数}') </parameter>

文本

7. ClickHouse编辑

7.1 日期类参数

日期类型SQL 示例
推荐设置的参数类型
年份

SELECT * FROM xxxx WHERE toString(toYear(注册时间)) ='${年份}'

文本
年月

SELECT * FROM xxxx WHERE toString(toYear(注册时间)) ='${年份}' and toString(toMonth(注册时间)) ='${月份}'

文本
日期

SELECT * FROM xxxx WHERE 注册时间 in ('${日期参数}')

日期
日期区间

SELECT * FROM xxxx WHERE 注册时间 between '${起始日期}' and '${结束日期}'

日期
年月区间

SELECT * FROM xxxx WHERE TO_CHAR("注册时间",'yyyymm') >=concat('${开始年份}',case when cast('${开始月份}' as tinyint)>9 then '${开始月份}' else concat('0','${开始月份}') end ) and TO_CHAR("注册时间",'yyyymm') <=concat('${{截至年份}',case when cast('${截至月份}' as tinyint)>9 then '${截至月份}' else concat('0','${截至月份}') end )

文本
年季度

SELECT * FROM xxxx WHERE toString(toYear(注册时间))='${年份}' and toString(floor((toMonth(注册时间)+2)/3))='${季度}'

文本

7.2 文本类参数

文本类型SQL 示例推荐设置的参数类型

参数只能取一个值

SELECT * FROM demo_contract WHERE "合同类型"='${文本参数}'

文本
参数可以取多个值

SELECT * FROM demo_contract WHERE "合同类型" in ('${文本参数}')

文本
当参数为空时,显示全部,参数有值时,显示参数值

SELECT * FROM demo_contract WHERE 1=1 <parameter> and "合同类型" in ('${文本参数}') </parameter>

文本