2014-08-28 90 views
0

我有許多行,其中包含不同列的不同值,但我只有一列 - 數據,我如何在行中找到特定列值,它看起來像像如何在一個SQL行中爲特定列選擇特定值

14000000PA1420000000PMP1 14200003093090006185211010012 240614000000250614 BUDAPEST  VODAFONE POSTPAID PAYM 2030001025010000002660000348HUFFORINT         2506144261230042061365 0000000050 000000266000034800000026600003480000002660000348DALLOS SZILÁRD   022220049111250507201406250 000000266000042612314176001 000490836HU739900000000125050140625        fcbmc22.176 

例如我需要第三列中,則意味着14200(10位至15位)

我知道SUSBSTR,但在其他行其不同的位置,所以我不知道每個位置上,

謝謝。

+1

是你的問題顯示一行數據? – 2014-08-28 13:56:40

+0

要獲得一個列的一部分,您可以使用Oracle ['SUBSTR'](http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions162​​.htm)函數(該鏈接用於Oracle 10 docs,但11和12是一樣的)。 – 2014-08-28 13:59:38

+0

「但其他行中的位置不同,所以我不知道每個位置」。如果它不是固定寬度的列或分隔,有沒有這樣的結構?如果不是,我不確定你會如何知道「第三欄」的位置。 – tbone 2014-08-28 14:17:09

回答

0

Third_column := substr(your_string, 11, 5)

0

似乎是一個簡單的子問題...

Select substr('14000000PA1420000000PMP1 14200003093090006185211010012 240614000000250614 BUDAPEST VODAFONE POSTPAID PAYM 2030001025010000002660000348HUFFORINT 2506144261230042061365 0000000050 000000266000034800000026600003480000002660000348DALLOS SZILÁRD 022220049111250507201406250 000000266000042612314176001 000490836HU739900000000125050140625 fcbmc22.176',11,5) as Col3 
FROM DUAL; 

產量:

Col3 
14200 
相關問題