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