我在数据库中有大约500个名称,以缩写名称结尾,例如:
┌────────────┬───────────┐
│ FNAME │ LNAME │
├────────────┼───────────┤
│ Berthe M │ Bjaaland │
│ Markus M │ Nilsen │
│ Ole T │ Rasmussen │
└────────────┴───────────┘
我想使用find和replace在所有单字符名称后添加句号(没有挪威语名称由单个字符组成,所以我知道它们都是缩写)。如果我可以运行更新查询,这将很容易,但我无权访问。有没有办法通过查找和替换或其他一些解决方法来执行此操作?
┌────────────┬───────────┐
│ FNAME │ LNAME │
├────────────┼───────────┤
│ Berthe M. │ Bjaaland │
│ Markus M. │ Nilsen │
│ Ole T. │ Rasmussen │
└────────────┴───────────┘
一旦我开始工作,相同的方法将应用于更改所有名称中间的单个字母,即使用'*? *”。
───
我正在向Oracle运行Access 2007。
查找名称的SQL:
select KOMMNR, KRETSNR, BOSTNR, PERSNR,
FORNVN, ETTNVN
from FOLKETELLINGER_KPERSON_1875
where FORNVN like "* ?";
我发现我无法使用此语法来运行过滤器,因为它返回以字符结尾的任何内容,而不是以空格和结尾的任何内容。这让我感到惊讶,因为我发现like
查询中可以使用的许多虚拟字符在搜索/过滤器中也能很好地工作。
我假设我需要运行更新的SQL,看起来像这样:
update FOLKETELLINGER_KPERSON_1875
set FOLKETELLINGER_KPERSON_1875.FORNVN = "* ?."
where FOLKETELLINGER_KPERSON_1875.FORNVN Like "* ?";
我尝试复制此语法以执行单个查找和替换,但该字段改为“*?”,并不令人惊讶。
───
P上。 S。:我添加了sql-update标签,即使我特意做不想要使用它;如果它应该删除,请在评论中告诉我。
P上。 P. S。:绘制一张ASCII表令人惊讶地平静下来;现在我真的想回去工作......
答案 0 :(得分:4)
如果您不想更新数据,请编写SELECT查询以获得所需的结果。
IIf()
区分案例:
SELECT FORNVN, [FORNVN] & IIf([FORNVN] Like "* ?",".","") AS FORNVN_Dot
FROM etc.
答案 1 :(得分:0)
您无法按模式设置。只添加一个“。”。
update FOLKETELLINGER_KPERSON_1875
set FOLKETELLINGER_KPERSON_1875.FORNVN = FOLKETELLINGER_KPERSON_1875.FORNVN & "."
where FOLKETELLINGER_KPERSON_1875.FORNVN Like "* ?";