SQL Server:出于数学目的,如何仅选择带有度量单位的数字[重复]

Posted

技术标签:

【中文标题】SQL Server:出于数学目的,如何仅选择带有度量单位的数字[重复]【英文标题】:SQL Server : how to only select a number that has a unit of measure attached, for math purposes [duplicate] 【发布时间】:2018-11-30 13:22:34 【问题描述】:

我需要根据最终用户的输入进行一些数学运算,但为了他们的缘故,我们在可用选项中添加了计量单位,以便输入到正在查询的表中。所以我有一列填充了 6 英寸或 1 英尺,我只需要实际数字来继续我的等式。有没有办法过滤掉我选择的非整数部分?

最终使用了这个

REVERSE(SUBSTRING(REVERSE(COLUMNNAME),2,4))

所以它花了 16" 将其更改为 "61 选择了 61 然后反转回来。我的专栏永远不会超过 100 并且 UOM 将是相同的,所以如果它是 ft,我会为此修改它。

【问题讨论】:

非常感谢您的意见! 重新设计/修改数据库并将列设置为整数是否为时已晚? 哈哈,不一定,但为了方便,我不想修改。我最终扭转了查询。 REVERSE(SUBSTRING(REVERSE(COLUMN, 2, 4))) 我需要一个从右到左而不是从左到右的子字符串,这样就可以了。 【参考方案1】:

有关将VARCHAR 转换为INTEGER 的信息,请参阅this overview。

简短回答:开箱即用是不可能的。但在“如何从列值中解析/检索仅数字包含字母数字字符?”它们链接到一个自定义函数,可以满足你的需要。

【讨论】:

酷,非常感谢您的意见!

以上是关于SQL Server:出于数学目的,如何仅选择带有度量单位的数字[重复]的主要内容,如果未能解决你的问题,请参考以下文章

读取 SQL Server 2014 ldf 文件

如何在 SQL Server 中更新具有数百万行的大表?

Sql Server:如何仅在存在时才选择列?

为什么SQL Server不遵循带有SUM的BODMAS数学规则?

SQL Server 扩展属性 MS_SubdatasheetName

如何使用计算值更新带有 PL\SQL 的列