如何在oracle SQL中比较十六进制值
我有一个十六进制值的列,我想和下面的其他十六进制值进行比较,但我得到的结果不准确如何在oracle SQL中比较十六进制值,sql,oracle,Sql,Oracle,我有一个十六进制值的列,我想和下面的其他十六进制值进行比较,但我得到的结果不准确 SELECT vc_vin_vis_start_range FROM ok_dc.gms3_vc_mme_vin_si_detail WHERE TO_NUMBER(vc_vin_vis_start_range) >= TO_NUMBER('100001'); 是否有一种方法可以比较查询中的两个十六进制值 感谢您的帮助 使用TO\u数字(十六进制值,'xxxxxxxxx')(其中xs的数字是十六进制V
SELECT vc_vin_vis_start_range FROM ok_dc.gms3_vc_mme_vin_si_detail
WHERE TO_NUMBER(vc_vin_vis_start_range) >= TO_NUMBER('100001');
是否有一种方法可以比较查询中的两个十六进制值
感谢您的帮助 使用TO\u数字(十六进制值,'xxxxxxxxx')
(其中x
s的数字是十六进制VARCHAR2
列的最大长度):
Oracle安装程序:
CREATE TABLE ok_dc.gms3_vc_mme_vin_si_detail ( vc_vin_vis_start_range ) AS
SELECT '1' FROM DUAL UNION ALL
SELECT 'FFFFF' FROM DUAL UNION ALL
SELECT '100001' FROM DUAL UNION ALL
SELECT '100002' FROM DUAL UNION ALL
SELECT NULL FROM DUAL;
SELECT vc_vin_vis_start_range
FROM ok_dc.gms3_vc_mme_vin_si_detail
WHERE TO_NUMBER(vc_vin_vis_start_range, 'xxxxxxxxxx') >= TO_NUMBER('100001', 'xxxxxxxxxx');
VC_VIN_VIS_START_RANGE
----------------------
100001
100002
查询:
CREATE TABLE ok_dc.gms3_vc_mme_vin_si_detail ( vc_vin_vis_start_range ) AS
SELECT '1' FROM DUAL UNION ALL
SELECT 'FFFFF' FROM DUAL UNION ALL
SELECT '100001' FROM DUAL UNION ALL
SELECT '100002' FROM DUAL UNION ALL
SELECT NULL FROM DUAL;
SELECT vc_vin_vis_start_range
FROM ok_dc.gms3_vc_mme_vin_si_detail
WHERE TO_NUMBER(vc_vin_vis_start_range, 'xxxxxxxxxx') >= TO_NUMBER('100001', 'xxxxxxxxxx');
VC_VIN_VIS_START_RANGE
----------------------
100001
100002
输出:
CREATE TABLE ok_dc.gms3_vc_mme_vin_si_detail ( vc_vin_vis_start_range ) AS
SELECT '1' FROM DUAL UNION ALL
SELECT 'FFFFF' FROM DUAL UNION ALL
SELECT '100001' FROM DUAL UNION ALL
SELECT '100002' FROM DUAL UNION ALL
SELECT NULL FROM DUAL;
SELECT vc_vin_vis_start_range
FROM ok_dc.gms3_vc_mme_vin_si_detail
WHERE TO_NUMBER(vc_vin_vis_start_range, 'xxxxxxxxxx') >= TO_NUMBER('100001', 'xxxxxxxxxx');
VC_VIN_VIS_START_RANGE
----------------------
100001
100002
使用TO\u数字(十六进制值,'xxxxxxxxx')
(其中x
s的数字是十六进制VARCHAR2
列的最大长度):
Oracle安装程序:
CREATE TABLE ok_dc.gms3_vc_mme_vin_si_detail ( vc_vin_vis_start_range ) AS
SELECT '1' FROM DUAL UNION ALL
SELECT 'FFFFF' FROM DUAL UNION ALL
SELECT '100001' FROM DUAL UNION ALL
SELECT '100002' FROM DUAL UNION ALL
SELECT NULL FROM DUAL;
SELECT vc_vin_vis_start_range
FROM ok_dc.gms3_vc_mme_vin_si_detail
WHERE TO_NUMBER(vc_vin_vis_start_range, 'xxxxxxxxxx') >= TO_NUMBER('100001', 'xxxxxxxxxx');
VC_VIN_VIS_START_RANGE
----------------------
100001
100002
查询:
CREATE TABLE ok_dc.gms3_vc_mme_vin_si_detail ( vc_vin_vis_start_range ) AS
SELECT '1' FROM DUAL UNION ALL
SELECT 'FFFFF' FROM DUAL UNION ALL
SELECT '100001' FROM DUAL UNION ALL
SELECT '100002' FROM DUAL UNION ALL
SELECT NULL FROM DUAL;
SELECT vc_vin_vis_start_range
FROM ok_dc.gms3_vc_mme_vin_si_detail
WHERE TO_NUMBER(vc_vin_vis_start_range, 'xxxxxxxxxx') >= TO_NUMBER('100001', 'xxxxxxxxxx');
VC_VIN_VIS_START_RANGE
----------------------
100001
100002
输出:
CREATE TABLE ok_dc.gms3_vc_mme_vin_si_detail ( vc_vin_vis_start_range ) AS
SELECT '1' FROM DUAL UNION ALL
SELECT 'FFFFF' FROM DUAL UNION ALL
SELECT '100001' FROM DUAL UNION ALL
SELECT '100002' FROM DUAL UNION ALL
SELECT NULL FROM DUAL;
SELECT vc_vin_vis_start_range
FROM ok_dc.gms3_vc_mme_vin_si_detail
WHERE TO_NUMBER(vc_vin_vis_start_range, 'xxxxxxxxxx') >= TO_NUMBER('100001', 'xxxxxxxxxx');
VC_VIN_VIS_START_RANGE
----------------------
100001
100002
假设列
vc\u vin\u vis\u start\u range
没有空值,那么我将执行以下操作:
SELECT vc_vin_vis_start_range FROM ok_dc.gms3_vc_mme_vin_si_detail
WHERE TO_NUMBER(vc_vin_vis_start_range,
rpad('x', length(vc_vin_vis_start_range) , 'x'))
>= TO_NUMBER('100001', 'xxxxxx');
rpad()
函数根据要转换的每个值构建十六进制格式。假设列vc\u vin\u vis\u start\u range
没有空值,那么我将执行以下操作:
SELECT vc_vin_vis_start_range FROM ok_dc.gms3_vc_mme_vin_si_detail
WHERE TO_NUMBER(vc_vin_vis_start_range,
rpad('x', length(vc_vin_vis_start_range) , 'x'))
>= TO_NUMBER('100001', 'xxxxxx');
rpad()?有多少?@标签大小变量列vc\u vin\u vis\u start\u range
中的所有数字大小(位数)是否完全相同?多少?@司机尺码不一,非常感谢。看起来这两个解决方案都在运行我之所以接受另一个解决方案,只是因为在它上面创建函数索引很容易。非常感谢你的时间。谢谢,非常感谢。看起来这两个解决方案都在运行我之所以接受另一个解决方案,只是因为在它上面创建函数索引很容易。非常感谢你的时间。谢谢