【发布时间】:2019-05-25 22:15:40
【问题描述】:
我正在尝试制作一个报告,该报告在两个日期之间提取数据,并且字符串在具有文本数据类型的描述列中仅出现一次
我尝试使用“postgresql-select-if-string-contains”stackoverflow 问题中的解决方案,但它没有考虑字符串在描述块中出现的次数。
SELECT o.ownername, to_char(a.auditdate, 'MM/DD/YYYY') as dateday,
o.additionalflags,
o.emailaddress, o.id, a.description, a.username,
CASE WHEN a.Action = 0 THEN 'ADD'
WHEN a.Action = 1 THEN 'EDIT'
WHEN a.Action = 2 THEN 'DELETE'
WHEN a.Action = 3 THEN 'MOVE'
WHEN a.Action = 4 THEN 'LOGIN'
WHEN a.Action = 5 THEN 'LOGOUT'
END AS Action
FROM owner o
INNER JOIN audittrail a ON o.id = a.linkid
/*
WHERE array_length(regexp_matches(description, '1\-Gets Email'), 1) = 1
*/
AND a.auditdate >= '$ASK DATE Enter the from date$'
AND a.auditdate <= '$ASK DATE Enter the to date$'
ORDER BY o.ownername
我要筛选的列包含如下所示的数据:
(ID 2) >>> LASTCHANGEDDATE: 2011-11-11 11:11:11.653868 ==> 2018-12-23 14:24:28.694724, ADDITIONALFLAGS: *1-Atest|1-Gets Email|1-Gets Snail Mail|Adopter-|donor|driver|fosterer|homechecked|homechecker|member|V-Foster Home: short-term/emergency|* ==> **1-Gets Email|1-Gets Snail Mail|Adopter-NCGSPR Dog|donor|driver|fosterer|homechecked|homechecker|member|V-Foster Home: short-term/|volunteer|,**
该列几乎是数据库中更改内容的描述日志。斜体字是过去的ADDITIONALFLAGS,粗体字是更改后的新的和当前的ADDITIONALFLAGS。我正在寻找“1-Gets Email”一次的描述行,因为我只关心那些已经改变的行,而不是在我查询的日期之前有“1-Gets Email”的描述行。
【问题讨论】:
-
您的加入将失败。您的查询是否正在运行?样本数据和预期结果会有所帮助..
标签: database postgresql select count where-clause