Oracle SQL REGEXP_SUBSTR मुद्दा

वोट
2

जबकि क्वेरी के नीचे निष्पादन मैं 235 के बजाय हो रही है 0

select  REGEXP_SUBSTR(000.235||'', '[^.]+', 1, 1)  from dual;
17/08/2017 को 11:19
उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
3

ओरेकल संख्यात्मक मान ट्रिम, आप संख्या के लिए ltrim जोड़कर इसे ठीक कर सकते हैं:

select REGEXP_SUBSTR(ltrim(' 000.235')||'', '[^.]+', 1, 1) from dual;

परिणाम: 000के रूप में उम्मीद

17/08/2017 को 11:25
का स्रोत उपयोगकर्ता

वोट
6

इस के बजाय है, और आप देखेंगे जहां समस्या आता है:

select  000.235||'' from dual

परिणाम:

.235

regexp गैर अवधि है, जो इस स्ट्रिंग में "235" है के पहले सबसे लंबे समय तक घटना को चुनता है, इसलिए यह सही काम कर रहा है; यह इनपुट मूल्य है कि टूटी हुई है

अब, अगर आप इसे इस तरह लिखा था, यह ठीक होगा:

select  REGEXP_SUBSTR('000.235', '[^.]+', 1, 1)  from dual

तो क्यों सांख्यिक की विषम प्रस्तुति? क्या करता है अपनी तालिका में अपना डेटा की तरह लग रहे? यह वास्तविक क्वेरी आप चला रहे हैं होने की संभावना नहीं है - अगर आप सच क्वेरी के साथ मदद की जरूरत है, तो उसे पोस्ट अप

17/08/2017 को 11:33
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more