Sql 解决这样一个糟糕的数据库模型。您需要修复模型,而不是查询。在varchar列中存储数字(几乎)总是一个非常糟糕的主意。@a_horse_与_no_name:我知道,糟糕的是:它不是我的数据库,不允许更改内容^^ select max(col1) from

Sql 解决这样一个糟糕的数据库模型。您需要修复模型,而不是查询。在varchar列中存储数字(几乎)总是一个非常糟糕的主意。@a_horse_与_no_name:我知道,糟糕的是:它不是我的数据库,不允许更改内容^^ select max(col1) from,sql,oracle,numbers,max,varchar,Sql,Oracle,Numbers,Max,Varchar,解决这样一个糟糕的数据库模型。您需要修复模型,而不是查询。在varchar列中存储数字(几乎)总是一个非常糟糕的主意。@a_horse_与_no_name:我知道,糟糕的是:它不是我的数据库,不允许更改内容^^ select max(col1) from( select to_number(numbers) as col1 from table ) d SELECT numbers FROM ( SELECT numbers FROM table_name ORDER BY


解决这样一个糟糕的数据库模型。您需要修复模型,而不是查询。在varchar列中存储数字(几乎)总是一个非常糟糕的主意。@a_horse_与_no_name:我知道,糟糕的是:它不是我的数据库,不允许更改内容^^
 select max(col1) from(
  select to_number(numbers) as col1 from table ) d
SELECT numbers
FROM (
  SELECT numbers
  FROM table_name
  ORDER BY LPAD(numbers, 256) DESC
)
WHERE rownum = 1
SELECT LTRIM(MAX(LPAD(numbers, 256))) AS numbers
FROM table_name
SELECT TO_NUMBER('9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999') AS VAL
  FROM DUAL;
ORA-01426: numeric overflow
SELECT TO_NUMBER('99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999') AS VAL
  FROM DUAL;
SELECT CASE
         WHEN to_number('9999999999999999999999999999999999999999') >
              to_number('9999999999999999999999999999999999999998')
           THEN 'Greater'
           ELSE 'Not greater'
       END AS VAL
  FROM DUAL;