Selecting from a comm delimited list

Often we run queries like
SELECT * FROM TABLENAME WHERE FIELDA NOT IN ('A','B','C');
But what if your question goes in the opposite direction, what syntax would work?
In other words. suppose I want to know which values in the list are not in the table. How could I find that out without having to create a temp table?
I'm thinking that something like the following might work:
SELECT FIELDA FROM ('A','B','C') A
WHERE NOT EXISTS (SELECT 1 FROM TABLENAME B
WHERE B.FIELDA = A.FIELDA)

If you have a list of 30,000 items that you want to consider, then you'll likely want to have those items in a table. Here I'll create a fake table of orders, then create a shipment for most of those orders. Then I'll ask which orders of order type "PACKAGE BODY" have not been shipped.
SQL> create table orders as
  2  select object_id AS order_id,
  3         object_type as order_type,
  4         owner as customer
  5    from all_objects;
Table created.
SQL>
SQL> create table shipments as
  2  select *
  3    from orders
  4   where mod(order_id,47) > 0;
Table created.
SQL>
SQL> select order_id
  2    from orders
  3   where order_type = 'PACKAGE BODY'
  4  minus
  5  select order_id
  6    from shipments
  7   where order_type = 'PACKAGE BODY';
  ORDER_ID
      3290
      3619
      3948
      4888
      5499
      5546
     25098
     25192
     29422
     32618
10 rows selected.
SQL>

Similar Messages

  • Query a comma delimited list

    Suppliers is a field containing a comma delimited list of
    Supplier ID's.
    When a supplier logs in they should be able to view all the
    auctions that they have been registered for
    i.e if their supplierID is in the suppliers field.
    have tried this and get an error:
    <CFQUERY NAME="GetAuctions"
    DATASOURCE="#Application.Datasource#">
    SELECT * FROM Auctions
    WHERE '#Session.SupplierID#' IN 'Auctions.Suppliers'
    </CFQUERY>
    have tried this and recordcount is 0 when it should be 3:
    <CFQUERY NAME="GetAuctions"
    DATASOURCE="#Application.Datasource#">
    SELECT * FROM Auctions
    WHERE '#Session.SupplierID#' LIKE 'Auctions.Suppliers'
    </CFQUERY>

    You should avoid having a list value in a field and normalise
    your table. But if you want to stick with your style(which is not
    advisable), maybe you can do this. I believe your supplier id is a
    string so the code below may cause slowness in your system:
    <CFQUERY NAME="GetAuctions1"
    DATASOURCE="#Application.Datasource#">
    SELECT Suppliers FROM Auctions
    </CFQUERY>
    <cfoutput query="GetAuctions1">
    <CFQUERY NAME="GetAuctions2"
    DATASOURCE="#Application.Datasource#">
    SELECT * FROM Auctions
    WHERE '#Session.SupplierID#' IN(<cfqueryparam
    values="#Suppliers#" cfsqltype="CF_SQL_VARCHAR" list="Yes">)
    </CFQUERY>
    </cfoutput>
    But if your supplier id is a numeric value. then you can do
    this:
    <CFQUERY NAME="GetAuctions"
    DATASOURCE="#Application.Datasource#">
    SELECT A1.* FROM Auctions A1
    WHERE #Session.SupplierID# IN(SELECT A2.Suppliers FROM
    Auctions A2 WHERE A2.your_primary_key_for_table_Auctions =
    A1.your_primary_key_for_table_Auctions)
    </CFQUERY>

  • Is it possible to convert a table of values into a comma-delimited-list?

    Hi,
    I'd like to turn the following dataset:
    Parent | Child
    Charles | William
    Charles | Harry
    Anne | Peter
    Anne | Zara
    Andrew | Beatrice
    Andrew | Eugenie
    into this:
    Parent | Children
    Charles | Diana,Camilla
    Anne | Peter,Zara
    Andrew | Beatrice,Eugenie
    In other words, I'd like to take a list of values pertaining to some key and produce them as a comma-delimited-list.
    I know its is possible in T-SQL although the method is a bit of a nasty hack. Is it possible in PL-SQL?
    Thaks in advance
    Jamie

    Hi,
    With model clause (10g)
    with t  as(
    select 'Charles' parent, 'William' child from dual union
    select 'Charles', 'Harry' from dual union
    select 'Anne', 'Peter' from dual union
    select 'Anne', 'Zara' from dual union
    select 'Andrew', 'Beatrice' from dual union
    select 'Andrew', 'Eugenie' from dual
    select parent,substr(res,2) res
    from t
    model
    return updated rows
    partition by ( parent)
    dimension by ( row_number()over(partition by parent order by child) rn)
    measures(child, cast( null as varchar2(4000)) as res)
    rules
    iterate(100000)
    until(presentv(res[iteration_number+2],1,0)=0)
    ( res[0]=res[0]||','||child[iteration_number+1]);
    PARENT  RES                                              
    Anne    Peter,Zara                                       
    Andrew  Beatrice,Eugenie                                 
    Charles Harry,William                                    
    3 rows selected.

  • REGEXP_SUBSTR for comma delimited list with null values

    Hi,
    I have a column which stores a comma delimited list of values. Some of these values in the list may be null. I'm having some issues trying to extract the values using the REGEXP_SUBSTR function when null values are present. Here are two things that I've tried:
    SELECT
       REGEXP_SUBSTR (val, '[^,]*', 1, 1) pos1
      ,REGEXP_SUBSTR (val, '[^,]*', 1, 2) pos2
      ,REGEXP_SUBSTR (val, '[^,]*', 1, 3) pos3
      ,REGEXP_SUBSTR (val, '[^,]*', 1, 4) pos4
      ,REGEXP_SUBSTR (val, '[^,]*', 1, 5) pos5
    FROM (SELECT 'AAA,BBB,,DDD,,FFF' val FROM dual);
    POS P POS P P
    AAA   BBB
    SELECT
       REGEXP_SUBSTR (val, '[^,]+', 1, 1) pos1
      ,REGEXP_SUBSTR (val, '[^,]+', 1, 2) pos2
      ,REGEXP_SUBSTR (val, '[^,]+', 1, 3) pos3
      ,REGEXP_SUBSTR (val, '[^,]+', 1, 4) pos4
      ,REGEXP_SUBSTR (val, '[^,]+', 1, 5) pos5
    FROM (SELECT 'AAA,BBB,,DDD,,FFF' val FROM dual);
    POS POS POS POS P
    AAA BBB DDD FFFAs you can see neither of the calls works correctly. Does anyone know how to modify the regular expression pattern to handle null values? I've tried various other patterns but was unable to get anyone to work for all cases.
    Thanks,
    Martin
    http://www.ClariFit.com
    http://www.TalkApex.com

    Hi, Martin,
    This does what you want:
    SELECT
       RTRIM (REGEXP_SUBSTR (val, '[^,]*,', 1, 1), ',') pos1
      ,RTRIM (REGEXP_SUBSTR (val, '[^,]*,', 1, 2), ',') pos2
      ,RTRIM (REGEXP_SUBSTR (val, '[^,]*,', 1, 3), ',') pos3
      ,RTRIM (REGEXP_SUBSTR (val, '[^,]*,', 1, 4), ',') pos4
      ,RTRIM (REGEXP_SUBSTR (val || ','
                          , '[^,]*,', 1, 5), ',') pos5
    FROM (SELECT 'AAA,BBB,,DDD,,FFF' val FROM dual);The query above works in Oracle 10 or 11, but in Oracle 11, you can also do it with just REGEXP_SUBSTR, without using RTRIM:
    SELECT
       REGEXP_SUBSTR (val, '([^,]*),|$', 1, 1, NULL, 1) pos1
      ,REGEXP_SUBSTR (val, '([^,]*),|$', 1, 2, NULL, 1) pos2
      ,REGEXP_SUBSTR (val, '([^,]*),|$', 1, 3, NULL, 1) pos3
      ,REGEXP_SUBSTR (val, '([^,]*),|$', 1, 4, NULL, 1) pos4
      ,REGEXP_SUBSTR (val, '([^,]*),|$', 1, 5, NULL, 1) pos5
    FROM (SELECT 'AAA,BBB,,DDD,,FFF' val FROM dual);The problem with your first query was that it was looking for sub-strings of 0 or more non-commas. There was such as sub-string. consisting of 3 characters, starting at position 1, so it returned 'AAA', as expected. Then there was another sub-string, of 0 characters, starting at position 4, so it returned NULL. Then there was a sub-string of 3 characters starting at position 5, so it returned 'BBB'.
    The problem with your 2nd query was that it was looking for 1 or more non-commas. 'DDD' is the 3rd such sub-string.
    Edited by: Frank Kulash on Feb 16, 2012 11:36 AM
    Added Oracle 11 example

  • Use PL/SQL Table values as a comma delimited list in a in (...) clause

    Hi,
    One my procedure's parameters is a PL/SQL table of id's (NUMBER) that the GUI sends it, based on the user's selections.
    Now, I want to use the table's values in my select's where clause to return only the correct records.
    However,
    select ......
    from ....
    where id in (i_array_ids)
    doesn't work of course, and my attempts of transfering the ids to a comma delimited list of numbers (as opposed to a lenghty varchar2 string) that could work between the ( ) have all failed.
    Thanks

    And here's an example I gave with some more up-to-date syntax than in that old AskTom thread:
    Re: DYNAMIC WHERE CLAUSE in PROCEDURE

  • Too many commas in my comma delimited list

    I'm trying to merge several pdf files into one by using the cfpdf tag (action="merge").  In the source attribute, you can enter a comma delimited list of file paths to merge the pdf files together.  I'm thinking that Adobe could have picked a better delimiter though because it breaks if there is a comma any one of the file names.  I've tried using replace() to replace the commas in my filenames with chr(44) before passing it to the cfpdf tag, but it still breaks.  Any ideas on how to accommodate this?  I'm trying to prevent having to copy hundreds of files to a temp directory, then use the directory attribute instead, then delete the temp directory.  That just seems like such a waste of resources...
    Thanks!

    cfpdfparam is a WIN!  Thanks for the heads up, i had no idea that you could use the tag like that.
    <cfpdf 
    action = "merge"
    destination = "C:\Inetpub\mydir\secure\test\output_merge.pdf"
    overwrite = "yes">
    <cfpdfparam source = "C:\Inetpub\mydir\secure\test\0003. A-001 - Restaurant, Floor Plan.pdf">
    <cfpdfparam source = "#expandPath('/secure/test/0001. G-001 - General.pdf')#">
    <cfpdfparam source = "#expandPath('/secure/test/0002. G-101 - General Information.pdf')#"></cfpdf>
    Works Great, Thanks!

  • Validating comma-delimited list for numeric entries

    Hi!
    I need to validate a comma-delimited list to make sure all the list items are numeric.  I could do a cfloop to loop through the list, then an IsValid() to check each entry, but that seems cumbersome, so I was wondering if there was a better way.
    Thanks!

    BreakawayPaul wrote:
    I had the idea to just do a replace() to get rid of all the commas and treat the value as one big number.  It seems to work.
    True. That is a creative test. But what if the list begins with 0 or contains negative or decimal numbers?
    If you must include those such eventualities, then you could extend the test to something like
    <cftry>
    <cfset myList="0,1,2,x">
    <cfset maxNo=arrayMax(listToArray(myList))>
    <!--- The rest of the business code goes here --->
    <cfcatch type="expression">
    <cfoutput>#cfcatch.Detail#</cfoutput>
    </cfcatch>
    </cftry>

  • Passing data to different internal tables with different columns from a comma delimited file

    Hi,
    I have a program wherein we upload a comma delimited file and based on the region( we have drop down in the selection screen to pick the region).  Based on the region, the data from the file is passed to internal table. For region A, we have 10 columns and for region B we have 9 columns.
    There is a split statement (split at comma) used to break the data into different columns.
    I need to add hard error messages if the no. of columns in the uploaded file are incorrect. For example, if the uploaded file is of type region A, then the uploaded file should be split into 10 columns. If the file contains lesser or more columns thenan error message should be added. Similar is the case with region B.
    I do not want to remove the existing split statement(existing code). Is there a way I can exactly pass the data into the internal table accurately? I have gone through some posts where in they have made use of the method cl_alv_table_create=>create_dynamic_table by passing the field catalog. But I cannot use this as I have two different internal tables to be populated based on the region. Appreciate help on this.
    Thanks,
    Pavan

    Hi Abhishek,
    I have no issues with the rows. I have a file with format like a1,b1,c1,d1,e1, the file should be uploaded and split at comma. So far its fine. After this, if the file is related to region A say Asia, then it should have 5 fields( as an example). So, all the 5 values a1,b1..e1 will be passed to 5 fields of itab1.
    I also have region B( say Europe)  whose file will have only 4 fields. So, file is of the form a2,b2,c2,d2. Again data is split at comma and passed to itab2.
    If some one loads file related to Asia and the file has only 4 fields  then the data would be incorrect. Similar is the case when someone tries to load Europe file with 5 fields related data. To avoid this, I want to validate the data uploaded. For this, I want to count the no. of fields (seperated by comma). If no. of fields is 5 then the file is related to Asia or if no. of fields is 4 then it is Europe file.
    Well, the no. of commas is nothing but no. of fields - 1. If the file is of the form a1,b1..e1 then I can say like if no. of commas = 4 then it is File Asia.But I am not sure how to write a code for this.Please advise.
    Thanks,
    Pavan

  • Adding spaces in comma-delimited lists

    I'm pulling from a database comma-delimited db that appears
    like so:
    Carpet,Hardwood,Tile
    How can I add spaces after the comma (if there's commas at
    all)?

    #Replace(yourstringorvar, ",", ", ", "ALL")#
    Azadi Saryev
    Sabai-dee.com
    http://www.sabai-dee.com

  • Comma delimited lists

    The data is as below:
    create table mylist
    id number,
    list varchar2(50)
    begin
    insert into mylist (id,list) values (111,'1,2');
    insert into mylist (id,list) values (222,'2,3');
    insert into mylist (id) values (333);
    commit;
    end;
    create table mylistvalues
    value number
    begin
    insert into mylistvalues (value) values (1);
    insert into mylistvalues (value) values (2);
    insert into mylistvalues (value) values (3);
    insert into mylistvalues (value) values (4);
    commit;
    end;
    I have to populate all ids in mylist table where list has one valid value in mylistvalues table.
    The output should be 111 and 222, because 1,2,3 are in mylistvalues table.
    Thanks.

    SELECT  DISTINCT id
      FROM  mylist,
            mylistvalues
      where regexp_like(',' || list || ',',',' || value || ',')
            ID
           222
           111
    SQL> SY.

  • Detail region does not refresh when selecting from a drop-down list in master region

    I am using DW CS3 and have updated to version 1.6.1 of Spry.  Using an XML dataset, I am able to create a Spry table as the master region that links to a detail region that displays a small JPG graphic.  It works fine in this format (clicking on a row displays the correct graphic).  However, my table has 80 rows and requires the user to do too much scrolling. So I changed the master region to a drop-down repeat list, but the graphic does not change when a new selection is made in the drop down list.  Listed below is the code produced when I used the insert Spry Repeat List.  I got the same results when adding a spry:setrow="dsChartNurse".  I also tried -- onclick="dsChartNurse.setCurrentRow('{ds_RowID}');" -- which again made no difference.
    When I removed children from the spry:repeat, the master region displayed as a two column list of all 80 items in a drop-down list format.
    <div spry:region="dsChartNurse">
           <select name="select" spry:repeatchildren="dsChartNurse">
             <option value="{name}">{name}</option>
           </select>
    </div>
    <div id="image" spry:detailregion="dsChartNurse">
       <img src="{dataimage}" align="center" style="margin:50px 0 0 0"width="320" height="164" />
    </div>
    Thanks so much to anyone who can help correct my code in order to have a drop-down list display information correctly in the detail region.

    Thanks for the quick reply.  I did solve the problem I was having by changing from onclick to onchange in the master region.  But, now I have another problem with, of course, IE.  I just put in online at http://www.minursemap.org/ageDistNurse.html.  When opened in IE, the drop down list displays the last entry, but the image is for the first in the list.  Thanks again for your help.

  • Open a new form based on the selection from the drop down list

    Good Morning Everyone,
    Can any one please advise how I can start to build the form that has a drop down list(DDL) to list other forms so the user can select one from the selection of that DDL to open a new form.
    e.g  A form in workspace ES3 with drop down list to list 3 forms: form1, form2, form3. When user select form1 from the DDL, then it will kick off the render servic to launch form1 in workspace ES3.
    Thanks in advance,
    HD

    Hi,
    I'm not surea about the data structure...Are there two ClassNodes, one for "VALVES" and one for "BOLTS"??
    and for scripting it is no good idea if the names of the attributes are value, don't know if this is your naming...
    but to access a node of the DATA view -->
    //var selection --> you have assigned "VALVES"
      var onodeCN =  xfa.resolveNodes("xfa.record.Classification.ClassNode[*].value");
    // get the node with the valves -->
                   for (var i = 0; i < onodeCN.length ; i++) {
                        if ( onodeCN.item(i).value == selection ) {
                                         //get the Leaves of Node VALVES
                                         var onodeVALS = xfa.resolveNodes("xfa.record.Classification.ClassNode[+i+].ClassLeaf[*].value");
                                         for (var j = 0; j < onodeVALS.length ; j++) {
                                           // insert values of Leave to 2nd drop down
                                XXX.addItem(onodeVALS.item(j).value, onodeVALS.item(j).value);
    ??works??
    norbert

  • Creating a dropdown list which is depending on the selections from 2 other dropdown lists

    Hi,
    I'm new to LiveCycle and JavaScript and I was hoping someone could help me with this form I am creating.
    This is what I want it to do:
    I have a dropdown list named 'Area' which drops down to 3 options.  Once the form filler selects an area, they will then select an option from dropdown list 2 which is named 'Brand'  (there is up to 5 options), I then I want dropdown list 3 named 'Address" to have all of the address of the area and brand selected.
    Is this possible?
    Thankyou for your help!!

    Hi,
    here is an example for three dropdowns with dependencies.
    You have to copy this code in the change-event of the fist dd:
    Number and Letter are the entries in my example in the first dd. You have to adapt to your entries. Then you have your object names change in the script.
    DropdownListe2.addItem("123"); - this phrase you could use several times (in your example 5x for the second dd)
    switch (xfa.event.newText)
        case "Number":
            DropdownListe2.clearItems();
            DropdownListe3.clearItems();
            DropdownListe3.rawValue = null;
            DropdownListe2.addItem(" ");
            DropdownListe2.addItem("123");
            DropdownListe2.addItem("456");
            DropdownListe2.selectedIndex = 0;
            break;
        case "Letter":
            DropdownListe2.clearItems();
            DropdownListe3.clearItems();
            DropdownListe3.rawValue = null;
            DropdownListe2.addItem(" ");
            DropdownListe2.addItem("A");
            DropdownListe2.addItem("B");
            DropdownListe2.selectedIndex = 0;
            break;
        default:
            break;
    This code you have to copy in the change-vent from the second dropdown:
    switch (xfa.event.newText)
        case "123":
            DropdownListe3.clearItems();
            DropdownListe3.addItem(" ");
            DropdownListe3.addItem("123_aa");
            DropdownListe3.addItem("123_bb");
            DropdownListe3.selectedIndex = 0;
            break;
        case "456":
            DropdownListe3.clearItems();
            DropdownListe3.addItem(" ");
            DropdownListe3.addItem("456_aa");
            DropdownListe3.addItem("456_bb");
            DropdownListe3.selectedIndex = 0;
            break;
        case "A":
            DropdownListe3.clearItems();
            DropdownListe3.addItem(" ");
            DropdownListe3.addItem("A_1");
            DropdownListe3.addItem("A_2");
            DropdownListe3.selectedIndex = 0;
            break;
        case "B":
            DropdownListe3.clearItems();
            DropdownListe3.addItem(" ");
            DropdownListe3.addItem("B_1");
            DropdownListe3.addItem("B_2");
            DropdownListe3.selectedIndex = 0;
            break;
        default:
            break;
    Here you will find an example:
    https://workspaces.acrobat.com/?d=WjPa976zd1Ekdahx9r9kUw
    Hope it will helps you,
    Mandy

  • Value need to select from the drop down list & should be save under Variant

    Hi,
    My requirement is that i need to display two values in drop down list of a selection screen. Between two values , one value will be display as a default value. During program execution user can choose any value from drop down list as per requirement and
    he can save this in a Variant.
    Next time if he choose data from Variant, but still he will be able to select any value from drop down list.
    For that i am using FM VRM_SET_VALUES. How can i make the changes to meet my requirement using this function module or any other suggestions will be highly appreciated.
    Thanks & Regards,
    Tutun
    Edited by: tutun nandy on Nov 19, 2010 12:21 PM

    Try to disable hardware acceleration in Firefox.
    *Tools > Options > Advanced > General > Browsing: "Use hardware acceleration when available"
    *https://hacks.mozilla.org/2010/09/hardware-acceleration/
    *https://support.mozilla.org/kb/how-do-i-upgrade-my-graphics-drivers
    *https://support.mozilla.org/kb/Troubleshooting+extensions+and+themes

  • HT4489 Rather than importing one vcf at a time (which doesn't seem to be working), is there someway of importing many contacts at once, perhaps from a comma-delimited file?

    I've just received my iPad, still struggling to get to grips with it, trying to import my contacts from my PC into iCloud.... does anybody have any suggestions on how to bulk-import?
    Thanks

    Thanks - that's exactly what I'm trying to do!
    It's step 2 that I'm having trouble with.
    I could replicate the job of something like (for example) JDOM by receiving all events under the root and creating JDOM elements from the contents, but I was hoping to be able to use some library that did this for me (for example: jdom's SAXBuilder class).
    The other side effect of this method is that you drive things from a SAX parser and let the document handler do the application work. Unfortuanately re-engineering the application to work from within a DocumentHandler is probably not an option.
    But thankyou anyway :)

Maybe you are looking for

  • Profit Center in Aging Reports

    Dear All, I have a requirement of creating an Aging report (Which we have built on AR Data Source, 0FI_AR_4). Now, i have a requirement to show the Profit Center drilldown in this report. Profit Center is present in the Base tables (BSID / BSAD (AR E

  • Help installn the 10.5.8 Update Mac OS X Leopard from 10.5.7 (Power PC G5)

    I am concerned about installing the +10.5.8 Update Mac OS X Leopard+ from +10.5.7 (Power PC G5)+. It does not say anything about users who aren't on the intel chip systems so I'm worried if I really need to upgrade, any advice? This also comes to min

  • SID error in XI sysytem

    hai friends iam trying to create 2 SID's in one single system . 1 for devlopment 2nd for production . is it posible to create 2 sid's for one single system if it is posible pls tell me how to do this one . OR any other way to maintain this devlopment

  • Deleting cloud docs from iPad

    How do I delete a document stored in Acrobat.com from iPad?

  • Error on a Switch Cisco SG300-52 PoE

    Hi, I get an error on a Switch Cisco SG300-52 PoE error: %Box-F-INVALID-PARAM-SETTING: Function BOXG_poe_i2c_read_mem_byte: invalid param recv_byte_PTR value = 0 ***** FATAL ERROR *****  Reporting Task: HCPT. Sof tware Version: 1.3.7.18 (date  12-Jan