這是我需要分析的數據:如何取一個字符串,將小數內的小數轉換爲分數,提取部分字符串,並將其與表格進行比較?
--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