我有一张像
这样的列的表格 Prefix CModel
g ;#WR_1;#WR_2;#WR_3;#WR_4;#
v ;#WR_3;#WR_4;#
j WR_2
m WR_1
d ;#WR_3;#WR_4;#
f9 WR_3
我想从CModel的所有列WHERE CModel = WR_3中检索数据。
SELECT Prefix,CModel From table1 WHERE CModel = WR_3;
只返回一行。
Prefix CMODEL
f9 WR_3
我希望它返回4行,因为WR_3存在于4行中(包含冒号分隔,如#WR_3;#WR_4;#)。如何在WHERE条件中指定?
答案 0 :(得分:1)
鉴于你的表结构,我会使用这样的东西:
SELECT Prefix, CModel
FROM table1
WHERE
[CModel] IS NOT NULL
AND (";" & Replace([CModel], "#", "") & ";") Like "*;WR_3;*";
Replace([CModel], "#", "")
将从模型中删除所有#
字符";" & Replace(...) & ";"
会添加一个;在一开始和一个;在字符串的末尾Like "*;WR_3;*"
将匹配包含;WR_3;
的所有字符串,因此它也会匹配仅包含WR_3
的行,但不会匹配包含WR_30