嗨,来自stackoverflow的朋友
我在访问和SQL中遇到问题,请在我的查询下面找到
update finaldata set [Area]=
IIF(InStr(1,[Name],'PoolSide',1)<>0,'PoolSide',
IIF(InStr(1,[Name],'Mountainside',1)<>0,'Mountainside',
IIF(InStr(1,[Name],'Garden Area',1)<>0,'Garden Area',
IIF(InStr(1,[Name],'Ground Floor',1)<>0,'Ground Floor',
IIF(InStr(1,[Name],'Annex Building',1)<>0,'Annex Building',
IIF(InStr(1,[Name],'Beachside',1)<>0,'Beachside',
IIF(InStr(1,[Name],'Beachfront',1)<>0,'Beachfront',
IIF(InStr(1,[Name],'Mountainside',1)<>0,'Mountainside',
IIF(InStr(1,[Name],'Executive',1)<>0,'Executive Level',
IIF(InStr(1,[Name],'Lakeside',1)<>0,'Lakeside',
IIF(InStr(1,[Name],'Mezzanine',1)<>0,'Mezzanine',
IIF(InStr(1,[Name],'Oceanfront',1)<>0,'Oceanfront',
IIF(InStr(1,[Name],'Overwater',1)<>0,'Overwater,
IIF(InStr(1,[Name],'Slope side',1)<>0,'Slope side',
IIF(InStr(1,[Name],'Tower',1)<>0,'Tower,'Delete'
)))))))))))))))
我有10万条记录,我不想使用记录集,因为它已经花了太长时间,我已经尝试过了。我必须进行许多内部联接,并且我的数据库文件越来越大。
我有什么处理字符串的选择?我在[Name]中存储了一个很长的字符串,它具有一个房间的许多特征。我正试图破译这个名字。
如果我唯一的选择是一个记录集,那么处理嵌套的if或select case会更快些?
感谢您的时间和帮助
iif
函数,因为该函数返回有关字符串内子字符串的不必要位置数据,您可能会发现使用update finaldata set [area] =
switch
(
instr([name],'PoolSide')<>0,'PoolSide',
instr([name],'Mountainside')<>0,'Mountainside',
instr([name],'Garden Area')<>0,'Garden Area',
instr([name],'Ground Floor')<>0,'Ground Floor',
instr([name],'Annex Building')<>0,'Annex Building',
instr([name],'Beachside')<>0,'Beachside',
instr([name],'Beachfront')<>0,'Beachfront',
instr([name],'Mountainside')<>0,'Mountainside',
instr([name],'Executive')<>0,'Executive Level',
instr([name],'Lakeside')<>0,'Lakeside',
instr([name],'Mezzanine')<>0,'Mezzanine',
instr([name],'Oceanfront')<>0,'Oceanfront',
instr([name],'Overwater')<>0,'Overwater',
instr([name],'Slope side')<>0,'Slope side',
instr([name],'Tower')<>0,'Tower',
true,'Delete'
)
运算符的速度更快,例如:并且鉴于此操作可对整个数据集进行操作,并且在执行时每条记录最多可进行15次比较,因此可以更快地评估16个独立的查询,每个查询具有以下结构:
instr