反馈已提交

网络繁忙

您好,只有最新版本的6.X支持在线编辑修改,如果想创建/编辑文档,请移步到 *最新版本*

SQL 数据集参数写法示例

  • 文档创建者:Roxy
  • 历史版本:7
  • 最近更新:Naya 于 2023-08-29
  • 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>

    文本

    附件列表


    主题: 构建图表和分析数据
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    在线QQ(将在2023.01.03关停):800049425

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭