使用 SQL 从字段中提取数值数据

Extracting Numeric Data from a Field Using SQL

我在 Access table 中有一列,其数据是一串 HTML 文本,在文本中是我想分离出来的数字数据点,例如“Number of客户”、“销售额”和“利润”。

例如,字段 sales_description 中的一项可能是“2020 年 11 月 27 日的客户数量为 99,销售额:967,利润:190”

到目前为止,我一直在使用 SQL 中的 REPLACE 函数来删除不需要的常用字符。现在,我想看看是否可以使用 TRIM 和 SPLIT 来获取 # Customers、Sales 和 Profit 的三列。

对于此示例,从 table 中提取所有内容并删除一些 HTML 文本的查询是:

SELECT order_id, order_date, REPLACE(REPLACE(sales_description, '', ''), '', '') 从 sales_data;

我想编写一个查询,其中的结果具有以下字段和值类型:

order_id(例如:0143823)
order_date(例如:2020 年 11 月 27 日)
num_customers(例如:35)
销售额(例如:280)
利润(例如:56)

感谢您提供的任何帮助,如果我需要提供更多详细信息,请告诉我。

没有要提取的 ID,但是 Number、Sales、Profit使用 VBA:

很容易拉取
? Val(Split(s, "Sales: ")(1))
 967 
? Val(Split(s, "Profit: ")(1))
 190
? Val(Split(s, " was ")(1))
 99 

日期需要多一点:

? CDate(Split(Split(s, "Number of Customers on")(1), " ")(1))
2020-11-27

您可以编写一个包装函数来从 SQL 调用这些函数以提取值。