SQL查询一个表t中所有A字段中存在某一位置的字符不等于'0'同时B字段相同位置的字符等于'2'或者'3'的记录

表t中A字段和B字段都是长度为10且含有数字字符的字符串,查找满足A中存在不等于'0'字符的位置,同时该位置B的字符等于'2'或'3'的记录。
例如 A 0010000000 B 0030000000 符合条件, A 0010100000 B 2000003000 不符合条件

sql

3个回答

SELECT * FROM t WHERE INSTR(A,"1")=INSTR(B,"2") OR INSTR(A,"1")=INSTR(B,"3");

xingjianfengaa
xingjianfengaa 回复pcsnow123: SELECT * FROM t WHERE INSTR(A,"1")<>0 and( INSTR(A,"1")=INSTR(B,"2") OR INSTR(A,"1")=INSTR(B,"3"));
一年多之前 回复
pcsnow123
葱葱那年丶 INSTR 找不到的时候会返回0 要考虑进去
一年多之前 回复

select * from t where (stbstring(A,1,1)!=0 and (stbstring(B,1,1)=2 or stbstring(B,1,1)=3))
or (stbstring(A,2,1)!=0 and (stbstring(B,2,1)=2 or stbstring(B,2,1)=3))
or (stbstring(A,3,1)!=0 and (stbstring(B,3,1)=2 or stbstring(B,3,1)=3))
or (stbstring(A,4,1)!=0 and (stbstring(B,4,1)=2 or stbstring(B,4,1)=3))
or (stbstring(A,5,1)!=0 and (stbstring(B,5,1)=2 or stbstring(B,5,1)=3))
or (stbstring(A,6,1)!=0 and (stbstring(B,6,1)=2 or stbstring(B,6,1)=3))
or (stbstring(A,7,1)!=0 and (stbstring(B,7,1)=2 or stbstring(B,7,1)=3))
or (stbstring(A,8,1)!=0 and (stbstring(B,8,1)=2 or stbstring(B,8,1)=3))
or (stbstring(A,9,1)!=0 and (stbstring(B,9,1)=2 or stbstring(B,9,1)=3))

目前没有特别好的解决办法,表中字段的某一字段的一部分参与搜索,应该把这个字段再分细一点比较好

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐