‘'select from Y where X like %序列加速算法%’
我们想读一下这个例子,比如“我的序列加速算法”。在通过计算字符串匹配百分比从数据库读取的情况下,我们如何做到这一点?
发布于 2019-09-28 02:48:52
我不认为sql有这个特性。但是你可以通过写你的逻辑来实现。首先通过like %searchString%获取结果。这个结果将是一个列表。现在迭代此列表,并在通过您的逻辑检查每个项目后删除(或将所选项目添加到新列表中)。
发布于 2019-09-28 06:23:44
您可以使用条件聚合:
SELECT
SUM(CASE WHEN X like '%sequence acceleration algorithem%' THEN 1 ELSE 0 END)
/ COUNT(*) AS ratio
FROM Y
这将为您提供列X
包含搜索字符串的记录的比率。
注意:如果您的表为空,则此查询将生成一个错误,因为分母将为0
。使用NULLIF()
(或您的关系型数据库中的-like)来避免该错误:
SELECT
SUM(CASE WHEN X like '%sequence acceleration algorithem%' THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS ratio
FROM Y
https://stackoverflow.com/questions/58139812
复制相似问题