我有这样的数据
1234500010
1234500020
1234500021
12345600010
12345600011
123456700010
123456700020
123456710010模式是1-数据(varian 3-7位数)+2-数据(任意3位数)+3-数据(任意2位数)。
我想要创建SQL来获取1-数据。例如,我想获得数据12345,我只想要结果。
1234500010
1234500020
1234500021如果我用“喜欢”,
select *
FROM data
where ID like '12345%' `我将使用12345、123456和1234567获取所有数据。
如果使用equal,我只会得到一个特定的数据。
我能把喜欢和平等结合在一起,得到我想要的结果吗?
从数据= '12345 +任意2-数据(3位)+任意3-数据(2位)的数据中选择*
有人能帮忙吗?
补充:对不起,如果我没有提到数据类型,并造成一些沟通失误。数据类型为char。@戈登回答说,其他人没有错。它适用于数字和varchar。但不适用于焦炭型。在这里,我发布了一些char数据类型的图片。Oracle对char数据类型的规范是一个固定的长度。所以如果我输入的不够长,它的剩余部分就会变成一个空间。


非常感谢。希望有人能帮上忙
发布于 2018-06-28 04:58:06
因为您的数据类型是CHAR,所以Gordon的答案对您不起作用。CHAR为小于最大限制的字符串添加了尾随空格。您可以使用TRIM来修复这个问题,如下所示。但是,最好是将编号存储在NUMBER类型中,而不是 CHAR或VARCHAR2,这迟早会造成其他问题。
select *
from data
where trim(ID) like '12345_____';发布于 2018-06-28 02:11:25
我想你想:
select *
from data
where ID like '12345_____' -- exactly 5 _下面是一个演示答案的雷克斯试验器。
发布于 2018-06-28 03:11:59
我认为这给了你你想要的解决方案,
create table data(ID number(15));
insert into data values(1234500010);
insert into data values(1234500020);
insert into data values(1234500021);
insert into data values(12345600010);
insert into data values(12345600011);
insert into data values(123456700010);
insert into data values(123456700020);
insert into data values(123456710010);从ID喜欢'12345_____'的数据中选择*
//在5_下划线之后正好是5,来自2-数据的任意3位数字(3下划线)和2位数字来自3-数据(2下划线)
您将得到(输出):
ID
1234500010
1234500020
1234500021
3行在0.00秒内返回
https://stackoverflow.com/questions/51073713
复制相似问题