sql - Snowflake - 日期表过滤问题
问题描述
我创建了一个查询,它根据开始和结束日期生成一组日期。
一切正常,但是当我尝试过滤基础表以仅生成我的范围之间的记录时,它仍然会产生所有基础日期。
我试过使用 between,使用 to_date() 将变量更改为日期,没有任何效果。
SET DATE_START_RANGE = '2018-12-1';
SET DATE_END_RANGE = CASE
WHEN CURRENT_DATE = LAST_DAY(CURRENT_DATE) THEN CURRENT_DATE
ELSE LAST_DAY(DATEADD(MONTH,-1, CURRENT_DATE))
END;
SELECT DATES
--,$DATE_START_RANGE
--,$DATE_END_RANGE
FROM (
SELECT DATEADD(MONTH, ROW_NUMBER() OVER (ORDER BY NULL), '2018-11-01') :: DATE AS DATES
FROM TABLE(GENERATOR(ROWCOUNT => 100000))
WHERE 1 =1
) LIST_OF_DATES
WHERE 1 = 1
AND DATES >= $DATE_START_RANGE -- this filter is not being picked up
AND DATES <= $DATE_END_RANGE -- this filter is not being picked up
--AND DATES BETWEEN $DATE_START_RANGE AND $DATE_END_RANGE -- this filter is not being picked up
AND DATES LIKE '____-06-%' OR DATES LIKE '____-12-%'
有任何想法吗?
解决方案
OR
条件是AND DATES LIKE '____-06-%' OR DATES LIKE '____-12-%'
问题:
SELECT DATES
--,$DATE_START_RANGE
--,$DATE_END_RANGE
FROM (
SELECT DATEADD(MONTH, ROW_NUMBER() OVER (ORDER BY NULL), '2018-11-01') :: DATE AS DATES
FROM TABLE(GENERATOR(ROWCOUNT => 100000))
WHERE 1 =1
) LIST_OF_DATES
WHERE 1 = 1
AND DATES >= $DATE_START_RANGE -- this filter is not being picked up
AND DATES <= $DATE_END_RANGE -- this filter is not being picked up
AND (DATES LIKE '____-06-%' OR DATES LIKE '____-12-%')
-- here should be brackets around condition
使用LIKE ANY (..., ...)语法的更简洁的方式:
SELECT DATES
FROM (
SELECT DATEADD(MONTH,ROW_NUMBER() OVER (ORDER BY NULL), '2018-11-01')::DATE AS DATES
FROM TABLE(GENERATOR(ROWCOUNT => 100000))
) LIST_OF_DATES
WHERE DATES BETWEEN $DATE_START_RANGE AND $DATE_END_RANGE
AND DATES LIKE ANY ('____-06-%', '____-12-%');
推荐阅读
- python - 将文件放在与 Jupyter 笔记本相同的目录中
- javascript - 无论如何要从 URL.createObjectURL 更改 blob 的路径
- c - 在C中多次使用随机数函数时生成相同的随机数
- python - 在python中加密然后解密相同的字符串
- isis - 侧边栏宽度太短,无法显示 datetimepicker
- javascript - 在 React 中输入一个字符后输入失去焦点
- google-cloud-platform - 当 gcloud compute ssh 命令卡住/挂起而没有错误消息时,如何解决无法 ssh 进入谷歌云实例的问题?
- maven - 使用 CURL 的 Apache Maven 下载超时
- python - 像素级多类分割,关于训练所有零像素图像的问题
- angular - Angular 9 和 @ngrx/store 原理图