在描述中找出少于一个值
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'
。以上是关于在描述中找出少于一个值的主要内容,如果未能解决你的问题,请参考以下文章
在 write() 写入的字节数少于请求的字节数后,如何让线程继续?
2021-11-13:至少有 K 个重复字符的最长子串。给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。提示:1(