在描述中找出少于一个值

Posted

技术标签:

【中文标题】在描述中找出少于一个值【英文标题】:Find out less than one value among the description 【发布时间】:2021-03-18 07:13:25 【问题描述】:

我有一个包含产品描述列的表。客户最近报告说,他们发现一些产品描述的值小于零而没有前导零。例如,“草莓精华 0.5 升”而不是“草莓精华 0.5 升”。但是,值会因描述而异(即可能是 .5、.1、.4 等),他们想找出那些受影响的描述并更新前导零。

谁能建议我如何编写 SQL(通配符)语句来返回包含小于一个值且产品描述中没有前导零的值?

我尝试了以下 SQL 语句的变体;

select * 
from InvItems 
where description like '%.[0-9]%'

【问题讨论】:

您应该分别存储不同类型的信息。所以你想要 3 列 Description, Size, Unit 不,事实并非如此。描述应向客户显示该信息。计量单位存储在单独的表中。对于其他相关信息,我还有几个单独的表格。 这是另一个问题:将相同的信息存储两次。您可以使用计算列或视图 CONCAT_WS(' ', Description, Size, Unit) 组成完整的描述 【参考方案1】:

在通配符前面使用空格

SELECT * 
FROM INVITEMS 
WHERE DESCRIPTION LIKE '% .[0-9]%'

样本

SELECT NAME
FROM (
VALUES ('Strawberry Essence .5 Ltr'),('Strawberry Essence 1.5 Ltr')
)S(NAME)
WHERE NAME LIKE '% .[0-9]%'

【讨论】:

@nwGCham 。 . .如果值在字符串的开头,这将不起作用:'.5 ltr Coke'

以上是关于在描述中找出少于一个值的主要内容,如果未能解决你的问题,请参考以下文章

删除具有少于三个唯一观察值的组

有没有办法在少于 O(n) 的时间内找到集合中的最小元素?

在 write() 写入的字节数少于请求的字节数后,如何让线程继续?

2021-11-13:至少有 K 个重复字符的最长子串。给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。提示:1(

获取列表中最小元素少于特定元素的最快方法

在流中查找的值少于几倍,然后是最大值