使用 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 调用这些函数以提取值。
我在 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 调用这些函数以提取值。