我有一个带有字段varchar2类型的表,
假设这个值:
aaab
s123
2445
25
21000
2500000
1
10000790
1899我需要获得从2开始的更大的价值。
我试着:
Select TO_NUMBER(myfield) from Services where myfield like '2%';我得到了
2445
25
21000
2500000现在,我想获得越大越小的值25和2500000。
我试着:
Select TO_NUMBER(myfield) from Services where myfield like '2%' ORDER BY myfield DESC;和
Select MAX(TO_NUMBER(myfield)) from Services where myfield like '2%';
Select MIN(TO_NUMBER(myfield)) from Services where myfield like '2%';我得到:
01722. 00000 - "invalid number"
*Cause: The specified number was invalid.
*Action: Specify a valid number.发布于 2018-10-29 16:03:59
您需要验证所有数字为数字/数字。
包括此验证
SELECT * FROM Services WHERE myfield LIKE '2%' AND REGEXP_LIKE (myfield, '^[[:digit:]]+$')获得最大值和最小值
SELECT MAX(TO_NUMBER(myfield)), MIN(TO_NUMBER(myfield))
from (SELECT * FROM Services WHERE myfield LIKE '2%' AND REGEXP_LIKE (myfield, '^[[:digit:]]+$'))现在,在Radagast81之后,
SELECT TO_NUMBER(myfield)
from (SELECT * FROM Services WHERE myfield LIKE '3%' AND REGEXP_LIKE (myfield, '^[[:digit:]]+$'))
ORDER BY 1 DESC;https://stackoverflow.com/questions/53048182
复制相似问题