【问题标题】: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) 组成完整的描述

标签: sql sql-server tsql


【解决方案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'
猜你喜欢
  • 1970-01-01
  • 2020-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-27
  • 1970-01-01
  • 2012-02-10
相关资源
最近更新 更多