关于Oracle查询求助?

数据表中第一列名称为编号,数据格式为10位数字,每一位取值0-9。
要查询编号满足条件: AABAA(A,B取值0-9,且B≠4) 的所有行。
自己方法比较笨,穷举每一个条件,如 like%11211%,然后union。
这样感觉太复杂了,有没有更好的方法?

慕尼黑的夜晚无繁华
浏览 672回答 1
1回答

白衣染霜花

SELECT * FROM test WHERE LEFT(id,5) in(SELECT id FROM(SELECT REVERSE(LEFT(id,5)) AS id FROM dbo.TestWHERE SUBSTRING(id,3,1)<>4) test)假设id为编号,test为表名。因为是AABAA形,所以截取id的前5位并去掉第三位是4的,然后反转。然后原表的ID截取前5位和反转后的应该相同
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Oracle