这是我需要分析的数据:如何取一个字符串,将小数内的小数转换为分数,提取部分字符串,并将其与表格进行比较?
--TABLE: PRICE_LIST
ITEM_DESCRIPTION VARCHAR2(60) VENDOR_PARTNO VARCHAR2(15)
---------------------------- --------------------------
.374 x 3 w/ph KLT-6 5506125
.4375 x 3-1/2 w/ph KLT-3345 5506124
.125 x 2-1/2 w/ph KLT-3211 5506123
.3125 x 4-1/2 w/ph KUR-44 5506127
这是我需要PRICE_LIST.ITEM_DESCRIPTION比较表:
--Table: MATERIALS
--COLUMN: VARCHAR2(20)
ITEM_ID
--------------
1/2 X 3-1/2
5/16 X 4-1/2
1/8 X 2-1/2
我试过这种方法,试图将它们分开,但是这样会需要大量的工作:
SELECT SUBSTR(VALUE, 1, INSTR(VALUE, 'x')-1) DIAMETER,
SUBSTR(VALUE, INSTR(VALUE, 'x')+1) DIRTY_LENGTH
FROM (SELECT DESCRIPTION VALUE FROM PRICE_LIST);
DIAMETER DIRTY_LENGTH
-------- ------------
.374 3 w/ph KLT-6
.4375 3-1/2 w/ph KLT-3345
.125 2-1/2 w/ph KLT-3211
.3125 4-1/2 w/ph KUR-44
但现在我有与我不知道该怎么做小数列,并有我的第二个分数的另一列,但其他数据我不需要。
因为只有在PRICE_LIST表中的最后2个值将匹配,我要的是只此返回:
ITEM_DESCRIPTION VENDOR_PARTNO
---------------- -------------
1/8 X 2-1/2 5506123
5/16 X 4-1/2 5506127
感谢您的帮助!
你为什么要使用这样的设计很差的数据?你应该有一个主键,你可以用来匹配,而不是弥补格式错误的数据和草率的字符串解析和比较。您可能想要购买一本书或找到关于基本数据库设计原则的Web教程。 –
似乎第一部分的描述可能对应于直径(.125 == 1/4等)。而且,是的,数据应该是结构化的。目前很难理解和使用。 – igr
@KenWhite - 我不知道OP的具体情况。但是,您是否可以想象这种情况,即现有数据,在一个认识到他们以前的IT人员是多么愚蠢的组织中(只是看看数据模型),他们解雇了所有不熟练的人员,而是*雇佣OP和其他人处理混乱?当然,修复数据模型等等,你会怎么做?你不需要做**正确** OP的要求是什么?如果你需要帮助,你不会在这里问吗? – mathguy