SQL删除文本,保留编号

时间:2013-03-29 20:01:51

标签: sql ms-access

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

1 个答案:

答案 0 :(得分: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()函数

     

根据包含电话号码字段的表格创建新查询。   将电话号码字段放在查询网格的第一列中。上   在“查询”菜单中单击“更新”在“更新到”行中,输入   以下是名为Phone的字段:RemoveAlphas([Phone])运行   查询。

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