0

我在访问数据库中有一些格式很差的旧数据。有一个包含混合数据的 packSize 列。有时它说“2 pack”,有时是“4 pk”,有时是“3”等。我想做的是运行 SQL 命令来删除所有文本并只留下数字。我该怎么办?

4

1 回答 1

2

虽然VAL如果字段始终以数值开头,则该命令可以工作,但情况可能并非总是如此。示例用法:

UPDATE Table SET field = Val(field)

如果您想从字符串/字段中删除所有非数字值,这是我过去使用的一种方法(直接来自 Microsoft):

Function RemoveAlphas (ByVal AlphaNum as Variant)

   Dim Clean As String
   Dim Pos, A_Char$

   Pos = 1
   If IsNull(AlphaNum) Then Exit Function

   For Pos = 1 To Len(AlphaNum)
      A_Char$ = Mid(AlphaNum, Pos, 1)
      If A_Char$ >= "0" And A_Char$ <= "9" Then
         Clean$ = Clean$ + A_Char$
      End If
   Next Pos

   RemoveAlphas = Clean$

End Function

和:

如何在更新查询中使用 RemoveAlphas() 函数

Create a new query based on the table with the phone number field. Place the phone number field in the first column of the query grid. On the Query menu, click Update. In the Update To row, enter the following for a field named Phone: RemoveAlphas([Phone]) Run the query.

http://support.microsoft.com/kb/210537

于 2013-03-29T20:16:12.647 回答