man*_*sha 5 ms-access sql-update
使用MS Access 2010.我在表中有一个字段,其中包含用引号括起来的窗口路径名称,如下所示
"C:\My Documents\Photos\img1.jpg"
"C:\My Documents\Photos\products\gizmo.jpg"
"C:\My Documents\Photos\img5.jpg"
Run Code Online (Sandbox Code Playgroud)
等等.
我需要删除引号,所以列看起来像这样:
C:\My Documents\Photos\img1.jpg
C:\My Documents\Photos\products\gizmo.jpg
C:\My Documents\Photos\img5.jpg
Run Code Online (Sandbox Code Playgroud)
有没有办法编写更新查询来执行此操作?或者更好的方式完成它?
如果您将在Access会话中使用Access 2000或更高版本执行此操作,则可以使用Replace()更新查询中的函数来删除引号.删除意味着用空字符串替换它们.
UPDATE YourTable
SET path_field = Replace(path_field, '"', '');
Run Code Online (Sandbox Code Playgroud)
如果这些路径字符串中的任何一个可以在其中包含引号(哎呀!),请考虑Mid()函数...要求它从第2个字符开始(跳过引导引号),并返回相当于的字符数Len(path_field) - 2
UPDATE YourTable
SET path_field = Mid(path_field, 2, Len(path_field) - 2);
Run Code Online (Sandbox Code Playgroud)
无论哪种方式,您可能希望包含WHERE子句以忽略没有path_field值的行.
WHERE Len(path_field) > 0
Run Code Online (Sandbox Code Playgroud)
如果在添加新数据时必须再次执行此操作,请使用不同的WHERE子句以确保仅更新其path_field值以引号开头和结尾的行.
WHERE path_field Like '"*"'
Run Code Online (Sandbox Code Playgroud)
那就是使用*外卡进行Access'默认的ANSI 89模式.如果您将从ADO(ANSI 92模式)执行此操作,请使用%通配符.
WHERE path_field Like '"%"'
Run Code Online (Sandbox Code Playgroud)
...或者使用ALike%wild卡和任一模式.
WHERE path_field ALike '"%"'
Run Code Online (Sandbox Code Playgroud)