您好,我正在尝试为数据库中的不同应用程序编写一个嵌套查询。
以下SQL代码是一个“语句”,它返回一组特定的应用程序
FROM APPL
WHERE APPL.CRE_TS >= to_date('20190801','yyyymmdd') and APPL.CRE_TS < to_date('20190802','yyyymmdd')
AND CPTR_APPL_ID LIKE '%C'
它返回所有以C结尾并在该特定日期之后的应用程序。
我要查询的是FROM都对它们相同,而日期保持不变,但唯一的区别是行
AND CPTR_APPL_ID LIKE '%C'
我将%C更改为其他名称。执行此操作最干净的查询是什么?
答案 0 :(得分:0)
您可以像这样在OR
中添加其他条件:
FROM
APPL
WHERE
APPL.CRE_TS >= to_date('20190801','yyyymmdd')
AND APPL.CRE_TS < to_date('20190802','yyyymmdd')
AND
(CPTR_APPL_ID LIKE '%C'
OR CPTR_APPL_ID LIKE '%A'
OR CPTR_APPL_ID LIKE '%B')
PS。设置代码格式以便可读。
编辑:基于您的评论说您想要所有结尾字符以及一个计数,您需要的是GROUP BY
和RIGHT()
。
SELECT
RIGHT(CPTR_APPL_ID, 1)
,COUNT(*)
FROM
APPL
WHERE
APPL.CRE_TS >= to_date('20190801','yyyymmdd')
AND APPL.CRE_TS < to_date('20190802','yyyymmdd')
GROUP BY RIGHT(CPTR_APPL_ID, 1)