我继承了一个数据库,其中用户输入字段存储为逗号分隔的字符串.我知道.瘸.我想要一种方法来解析SELECT查询中的这些字段,其中有三个不同数量的字符段.与我将字段插入新表或创建存储过程来执行此操作的所有建议相反,这就是我想出的.我想知道是否有人看到任何缺陷这样做作为一个选择查询(我可以很容易地从字符串转换为解析,然后根据需要再次返回).
Field_A
5,25,89
Run Code Online (Sandbox Code Playgroud)
所以要获得左段,这是最直接的:
Field_1: Left$([Field_A],InStr([Field_A],",")-1)
Run Code Online (Sandbox Code Playgroud)
要获得最正确的细分:
Field_3: Right$([Field_A],Len([Field_A])-InStrRev([Field_A],","))
Run Code Online (Sandbox Code Playgroud)
中段是最棘手的:
Field_2: Mid([Field_A],InStr([Field_A],",")+1,InStrRev([Field_A],",")-InStr([Field_A],",")-1)
Run Code Online (Sandbox Code Playgroud)
结果是:
Field_1 Field_2 Field_3
5 25 89
Run Code Online (Sandbox Code Playgroud)
任何同意的意见?