How to select a channel between the nth character to the nth + 1 character

Hello

I have a string "SWAP_20120224_MEGAMART_MAR_Sales.csv".

I want to get the chain between second and third underscore concerns underscore, i.e. "MEGAMART".
How to achieve this in the sql statement.

Thanks for the help.

Concerning

Hello

897704 wrote:
Hello

I have a string "SWAP_20120224_MEGAMART_MAR_Sales.csv".

I want to get the chain between second and third underscore concerns underscore, i.e. "MEGAMART".
How to achieve this in the sql statement.

One way is to use SUBSTR and InStr.

INSTR ( str,
      , '_'
      , 1
      , n
      )

Returns the position of the n-th point in str.

WITH     got_pos          AS
(
     SELECT     str
     ,     INSTR (str, '_', 1, 2) + 1     AS pos_2
     ,     INSTR (str, '_', 1, 3)          AS pos_3
     FROM     table_x
)
SELECT     str
,     SUBSTR ( str
            , pos_2
            , pos_3 - pos_2
            )      AS part_3
FROM    got_pos
;

You don't need absolutely the subquery; You can repeat the INSTR expressions as arguments to SUBSTR if you wish.

In Oracle 10 (and more), you can do ITI with less code, but once again the execution, by using regular expressions:

SELECT  str
,     REGEXP_SUBSTR ( str
                , '[^_]+'
                , 1
                , 3
                )          AS part_3
FROM    table_x
;

Are you sure the chain will always at least 3 ' _? Everything would change if the channel started by a '_', or the 2nd '_' came immediately after the 1st? Post some sample data (CREATE TABLE and INSERT statements) and the results that you want the data and explain.
Always tell what version of Oracle you are using.
See the FAQ forum {message identifier: = 9360002}

Published by: Frank Kulash on August 9, 2012 09:44
Correction of errors

Tags: Database

Similar Questions

  • How to select several channels in the drop-down list for switching?

    Hello

    I use TS2015 SP1 and SwitchExec 2015. I created a list of routes that are now visible in the properties of the step "Activation" in the drop-down list field "Way (s) to connect".

    Here, I can click on an item in the list to select it.

    What can I do to select a second item in the drop-down list?

    It seems that I have to write the second element after the decimal point manually. Is this correct? Or y at - it something to select back in the menu drop-down?

    Thanks for help

    My bad!

    I wanted to say: «M2_C6R6 and M2_C7R7»

  • How to get other channels in the channel list.

    Hi experts,

    How to get other channels in the channel list.

    for example

    "Country1, Italy countries2, India, countries3, paris, countries4, scottland, Canada5, rome"

    in the list above, I need to get all the countries and their names separately.

    as countries1, countries2, countries3 countries4 Canada5

    India, paris, Scotland, Italy, rome

    I try the one above in the fashion below

    SELECT SUBSTR

    ("Country1, Italy, countries2, India, countries3, paris, countries4, scottland, Canada5, rome,

    1,

    INSTR

    ("Country1, Italy, countries2, India, countries3, paris, countries4, scottland, Canada5, rome,

    ',',

    1,

    1

    )

    -1

    )

    OF THE DOUBLE

    everything please help me

    If you want the data to be more structured and useful:

    Column collar for a20
    Col col_value to a20

    inlist var VARCHAR2 (2000)

    exec: inlist: = 'Country1, Italy, countries2, India, countries3, paris, countries4, scottland, Canada5, rome;
    exec: inlist: = replace (: inlist,' ')

    Select max (decode (mod(lvl,2), 1, value)) Column
    , max (decode (mod(lvl,2), 0, value)) col_value
    from (select substr (: InList, + 1 start_pos, end_pos-start_pos-1) value)
    lvl
    from (select: InList)
    case when level = 1 then
    0
    on the other
    InStr(:InList,',',1,Level-1)
    end start_pos
    case when instr(:InList,',',1,level) = 0
    then length(:InList) + 1
    on the other
    InStr(:InList,',',1,Level)
    end end_pos
    level lvl
    of the double
    connect by level<>
    )
    )
    ceil(lvl/2) group
    order by 1;
          
    COLUMN COL_VALUE
    ____________________ ____________________
    Country1 Italy
    countries2 India
    countries3 paris
    Scottland countries4
    country5 rome

    Not tested on 10g

    Then you could stragg lines together...

  • How to select multiple cells at the same time?

    Hello

    How to select multiple cells at the same time? What is the keyboard shortcut?

    Thank you to.

    Flo, a french guy.

    Hold down the CMD key when you select the cells.

  • Chart WPF: How to add a space between the labels and tick marks

    I would like to know how to set a margin between the main graduations and their labels in a chart for WPF.

    Especially in the x-axis labels are placed very close ticks.

    Unfortunately, there are no existing configuration property to add an extra space around the scale labels. I created a task to address them in a future version of Measurement Studio.

    To work around the problem, you can use a string format that includes extra whitespace in the result:



            

                

                    

                        Format="{}{0} " />

                    

                

            

        

    If you need a check, you can create a custom label presenter to add extra space for the generated label visual.

  • How can I share network between the computer laptop windows 7 into a window of 8 tab?

    How can I share network between the computer laptop windows 7 into a window of 8 tab?

    Hi HollyMcColl,

    Thanks for posting your query in the Microsoft Community Forums.

    I understand from the description of the issue you are trying to share the computer network between Windows 7 and Windows 8. I will certainly help you in this regard.

    I appreciate if you could help me with more information.

    -Using Windows 8 Surface RT?

    Note: You can create a Windows RT PC home group, but you can join one.

    I suggest you to consult the help articles and check if it helps.

    A Wi - Fi & networking

    http://Windows.Microsoft.com/en-in/Windows-8/HomeGroup#1TC=T1

    Share files on a home network or your Surface

    http://www.Microsoft.com/surface/en-us/support/storage-files-and-folders/share-files-on-a-home-network?LC=1033

    Share files and folders on a network or shared PC

    http://Windows.Microsoft.com/en-us/Windows-8/share-files-folders

    Get back to us if you need further assistance on Windows 8. We will be happy to help you.

  • How to select multiple messages in the messaging application in Windows RT?

    How to select multiple messages in the messaging application in Windows RT?

    For contact:

    1) press the first mail

    (2) then drag the 2nd mail left or right a little bit.

    Repeat 2) for all other mails you want to select. You can use the same way to deselect.

    For the mouse:

    Use the ctrl and shift keys, like the Windows desktop version

    I don't know if there is a way to make the selection of the beach of 'shift' by touch only.

  • How to add a space between the currency symbol and price?

    Hello

    Can you please guide me how to add a space between the currency symbol and price?

    Support told me this question in the forums because it is done with JavaScript and it is not covered in the official documentation.

    Any who have done this? I would like to turn 20 at 13.20 RON RON13 or 32, 90 to 32,90 USD.

    Thank you!

    Hello.

    I test and it works.

    If any who need it, this is how I did it.

    I changed the models of Modules-> page layouts of the shop online-> overall layout.

    I added at the end of the HTML code, the code following JS:

    The result can be seen here: http://magazindepiese.worldsecuresystems.com/accesorii/chimice?Page=1&Items=12

    Instead of PRICE: RON22, 62, now it's READY: 22,62 RON that is correct for the Romania.

    Thank you Mario!

  • Can anyone tell how to insert a string between the two another string...?

    Can anyone tell how to insert a string between the two another string...?
    For example: String1 = 'ABC '.
    String2 = "XY".

    I want that the chain of output like "AXYBC".

    If you have the Position where you want to place your chain, this might work:

    SQL> r
      1  declare
      2    vStr1 varchar2(20) := '123456789';
      3    vStr2 varchar2(20) := 'aa';
      4    nInsertPos number := 3;
      5    vResult varchar2(20);
      6  begin
      7    vResult := substr(vStr1, 0, nInsertPos) || vStr2 || substr(vStr1, nInsertPos+1);
      8    dbms_output.put_line(vResult);
      9* end;
    123aa456789
    

    If you want to insert it after a special character, you can search for the position of your character with the help of instr

    concerning

  • How to control each channel of the signals emitted by the generator of digital waveforms?

    Generator has digital waveforms of 8 channels. I need to generate two different signals for HSDIO. How to change and control two different ways? In addition, how to translate pinout of the PXI-6541 to channels? I need pin 1,3,29 and 31 control signal individually.

    Thank you!!

    You need to combine your personal data in a table.  The digital waveforms is simply a numeric representation of the binary table.  It always boils down to bit 0 of each element of the array will channel 0 (or the first string that you specify in creating dynamic channels).  The next bit goes to the next channel.  My last post is very clear.  To display the table in binary, right-click on a table element, then select the display Format, then select binary.  You can also right click on the element, select Visible, then select Radix Show to display the small b before the number.  One last thing, in the display Format window, uncheck the box next to the minimum field width to use.  Then set the digital just below zone 8.  Then select Pad with zeros to the left in the box below.

    You should not use waveforms up to what learn you more about how the HSDIO operates on the input data.  It is not difficult to combine waveforms, but it is not as clear as it is using an array of U8, U16 or U32.

    Trying to explain further.  The first number to be written to the HSDIO will have this effect: Bit 0 (LSB) of the number is written to the first HSDIO string you specify.  Bit 7 is on channel 8, you specify.  If you specify no 8 channels, the bits download ignored.  If wiring in a certain number will produce only a single bit on each channel.  In other words, the number has already combines the bits of all channels that you specify.  Combine you do nothing yourself.  Return to my photo on my last post.  By wiring in a table, you cause a binary model must be generated.

    I hope that is more clear.

  • How to make a difference between the numbers nearest you

    I have table that returns a list of numbers

    I need to get a result as the difference between the numbers closest to you. For example:

    From:

    120

    140

    169

    170

    200

    TO:

    20

    19

    1

    30

    with

    data in the form of

    (select 120 n all the double union)

    Select 140 Union double all the

    Select 169 in union double all the

    Select 170 Union double all the

    Select 200 double

    )

    Select the diff

    (select lead (n) on the diff (command n) n -

    from the data

    )

    where diff is not null

    DIFF
    20
    29
    1
    30

    There are only one or several of them all equal differences (all the more big/little more) between the nearest number (or I'm missing something)

    Concerning

    Etbin

  • How to put a distance between the text boxes?

    I have several numbers that I have to be spaced from one line to the other. Is there a tool where I can adjust the distance between the text boxes?

    kaelans,

    For text boxes (Type of path), you can select all, then click on one of them, the Align attribute > spacing distribution, adjustment of the desired distance between the boxes.

  • How can I pass variables between the areas?

    So I have a SWF8 file as a player on one area (unsecured).  It loads and plays a SWF8 from another domain (secure).  So far so good.  Problem is, I need the player to send variables to files it's play that links in this SWF will be, in addition, a link.  I also need the player to receive orders from control of film in return.  There must be a rule or two that I am violating, because even if the file is read, everything depends on a variable is just dead.

    A note: the two files started as SWF6.  I understand that I can only make what I'm trying with SWF8, I went into the code and fixed case sensitive issues and made the conversion.

    Can I do this?  If so, how?  Is the script for the variables from another domain different somehow?

    Thanks in advance.

    You can use localconnection() for communication between the two.

    If sovereign wealth funds need to both send and receive data, using 2 instances of localconnection in each swf file.

  • How to select a part of the message under macOS Sierra?

    In previous versions of Mac OS x, I was able to select a part of the message (text / iMessage) in the Messages application. Now, if I try to do the same, Tapback is enabled. It's really annoying, as I often have to copy the entire message body, paste into an editor and then to do the editing.

    Which should not happen if you simply select the text of the message by double-clicking or click-and - drag. That action works the same way it always has.

    Tapback happen if you press and hold - in other words, if do not quickly move the cursor.

    If you are still unable to work, please review your Trackpad preferences. Maybe change a setting arbitrary will correct what you are experiencing. Check accessibility > mouse and Trackpad in the same way: change a setting to determine if what it fixes.

  • How to share a variable between the Mathscript Windows and a Mathscript node

    Hello

    I'm trying to share (just) a variable between the Mathscript Windows and a Mathscript node. I don't know why, but the use of the "global" Matlab function makes the mathscript node output formats change.

    I'm looking for a "Mathscript RT V9.0.1 module" as it may seem, there is. French technical support have some difficulty to find...

    Hi patrick33,.

    The code that you have attached should not report an error, so it seems that something has gone wrong with your installation of MathScript. My best guess is that it is the problem that is described in this knowledge base article. Your signature says that you use f3 patch, which is a good start. But the KB lists some other steps to take when you see errors about MathScript, impossible to compile. Can you try the procedure described in the article and let us know if that fixes the problem?

    Thank you

    jattas

    LabVIEW MathScript R & D

Maybe you are looking for