Select non-zero columns

if we have data in the following format:
c1 c2 c3 c4
0 234 0 12
0 111 0 11
0 280 0 38
0 387 0 49
the above no.of columns can be variable
how can we select only non-zero columns - c2 and c4

Hi,
This requires dynamic SQL.
To find if table_x.c1 contains anything except 0 (incluiding NULL), you could say:
SELECT  'TABLE_X', 'COL1'  FROM  dual  WHERE EXISTS (SELECT NULL FROM table_x WHERE NVL (c1, 1) != 0);What you have to do, using dynamic SQL, is write a SELECT statement like that for every column you want to test.
So you'll need a query like
SELECT  'SELECT '''
        || table_name
        || ''', '''
        || column_name
        || ''' FROM dual WHERE EXISTS (SELECT NULL FROM '
        || table_name
        || ' WHERE NVL ('
        || column_name
        || ', 1) != 0);'  -- Omit ';' in PL/SQL
FROM    all_tab_cols
WHERE   ...  -- whatever you needIn SQL*Plus, you can write all of these statements to a SPOOL file, and then execute it by saying @spool_file.
In PL/SQL, you would use EXECUTE IMMEDIATE to run each statement.

Similar Messages

  • Allocation Question -- Selecting Non-zero Dimension Members?

    Hi experts,
    (BPC 7.5 NW)  During an Allocation process, if you have a dimension, such as COSTCENTER for which only some members have data (in my case, about 400 of 700), which is not the driver dimension and you'd like to have the Allocation write back to those same members, while leaving the blank ones blank, is there some special process?
    In this example, you can see it selecting the CC's which are <> NO_COSTCENTER, but USING the Allocation rate, which as a stat account is stored in NO_COSTCENTER.
    So, it all works, except that the logic function writes a percentage to all three CC's specified in the *XDIM_MEMBERSET, even if there were initially values in only one or two.  Is there any way to have it write only to the ones that were initially populated/non-zero?
    ===================================================================================
    *XDIM_MEMBERSET ACCOUNTGL=A54442000,A54443000,A59989000,ALLOC_0702
    *XDIM_MEMBERSET COSTCENTER=CC01000,CC01004,CC01027,NO_COSTCENTER
    *XDIM_MEMBERSET CATEGORY=ACTUAL
    *XDIM_MEMBERSET CO_CODE=C001
    *XDIM_MEMBERSET TIME=2007.APR
    *RUNALLOCATION
    *FACTOR=USING
    *DIM COSTCENTER WHAT<->NO_COSTCENTER; WHERE<->NO_COSTCENTER; USING=NO_COSTCENTER
    *DIM ACCOUNTGL WHAT=A54442000,A54443000; WHERE=A59989000; USING=ALLOC_0702
    *ENDALLOCATION
    *COMMIT
    Edited by: Garrett Tedeman on Nov 4, 2010 6:59 PM
    Edited by: Garrett Tedeman on Nov 4, 2010 7:24 PM
    Update -- Just discovered that the "AMOUNT" keyword, which was used on the MS version, will not validate on BPC 7.5 NW.

    Hi Garrett,
    I'm not sure I understood what is the problem here: is it that allocation overrides some existing values on those Cost centers and Account A59989000 or you just don't like those records with zeroes?
    If it's the last one, that just run light optimization and check that zero elimination is turned on. It will delete your records with zeros.
    If it's the first one, that common practice is to use additional Dimension (DATASRC for example) and populate it with some value for all Cost centers from which you taking data (INPUT for example); than include it in allocation with WHAT = INPUT. You have to define additional member in that dimension (RESLT for example) and put WHERE = RESLT in allocation. By using this technique you achieve at least two benefits:you don't override existing values and you can run allocation as many times as you want without deleting results of previous allocations. You don't have to use that dimension in your reports and data will be just summarized across that Dimension.
    Please let me know if you had something different in mind.
    Regards,
    Gersh

  • How do I select non consecutive columns

    I have been working in numbers and Excel and need to select some non-consecutive rows or columns and just can't figure out how to do it. I know how in Windows. Any thoughts?
    Thanks,
    Maggie

    After the initial selection, command-click on each additional row or column.

  • Calculating average of non-zero values only

    Hi all,
    I have a table containing a numeric column which contains processing time in mili seconds. this can range from zero to any value. I want to calculate average processing time for only those entries which have non zero processing time in a single SQL. can you please suggest any SQL function for this?
    I'm using Oracle 10g.

    Sure, decode the 0 values to NULL (aggregate functions like AVG do not consider NULL values).
    ME_XE?with data as
      2  (
      3     select 10 as col1 from dual union all
      4     select 0  as col1 from dual union all
      5     select 20 as col1 from dual union all
      6     select 20 as col1 from dual
      7  )
      8  select avg(col1) as col1_avg, avg(decode(col1, 0, null, col1)) as col1_avg_no_zero
      9  from data;
              COL1_AVG   COL1_AVG_NO_ZERO
                  12.5 16.666666666666667
    1 row selected.
    Elapsed: 00:00:01.07
    ME_XE?

  • Display Non-zero values of keyfigures based on a particular value of a char

    Hi Gurus,
    I would like to display only Non-zero values for keyfigures but only for a particular value of a characteristic. For Ex: We have material Group. For a particular value of material group, i do not want to display the zero stock. But for other material groups it should display zero stock.
    I tried to use conditions, but the problem is it suppresses all the zero values for the keyfigure for material group in general and not for a particular value of the material group.
    Is there is any way that i can go about for this scenario. Pls help.
    thanks & regards,
    PS

    Hi
    Create a structure in the rows based on selections on material group. Eg.
    Structure
       Mat grp 1 (restricted to material during selection)
       Mat grp 2
    then add a formula in columns using boolean argument
    e.g (exisisting KF >= 1)*1+0
    Then you can use conditions to elimanate zeros on the new KF.
    Hope it helps
    Edited by: Karin van der Merwe on Feb 29, 2008 8:52 AM

  • WHY does the finder insist on rearranging the files in a folder in alphabetical order even when I have selected "none" in the preferences for file organization?

    WHY does the finder insist on rearranging the files and/or documents in a folder in alphabetical order even when I have selected "none" in the preferences for file organization? Even after I numbered the documents/folders to keep them in my preferred order, it will still displace them occasionally. This is becoming increasingly frustrating!
    Is this a "Pages" issue or "FInder"? The vast majority of documents I use are in Pages, but there are also Numbers, PDFs, jpegs and a few other applications involved. This never happened before I upgraded to Mountain Lion; in Tiger, the documents (mostly Appleworks) and files stayed where I wanted them to be.
    I am visually oriented, and prefer to arrange items in a folder in an order that makes them easier for me to access, which is often NOT alphabetical.
    Can anyone suggest a solution? Please??
    Thank you.
    Sara

    nbar,
    Thank you for your reply.
    However, I do not understand what you mean by "user account." I am the only user, and can find no options for "user" or "guest." The parental controls have always been off, as there are no other people who have access to my computer.
    Frank,
    Thank you for your reply.
    All my documents, files and folders are in icon view, Arranged By: none in both view and view options. This arbitrary rearranging does not happen all the time, only when I make a substantial change to one of the documents in the file or folder. I'm not sure what you mean by "column heading."
    MichaelLAX,
    Thank you for your reply.
    I know, to my sorrow, that Appleworks does not work with Mountain Lion. I spent at least three months converting approximately 2,000 Appleworks documents to Pages, Numbers, Bento (for databases) and Touchdraw (for drawings). So this is not the problem; but as I said, I did not have this rearranging problem with Appleworks - the icons stayed where I wanted them to be. I still miss the ease and reliability of Appleworks, darn it!
    Frank,
    Thank you for your second reply.
    I do have the Sort By: in view options as well as in view set to "none."   The finder still insists on rearranging, but only when I have made a substantial change to a document in that file or folder.
    Any futher thoughts?
    xdab, 
    Thank you for your reply.
    "Are you are using icon view, but for some reason the finder moves files around? is that the problem?"
    YES!! This is exactly the problem.
    "If this operation is successful then erase the original and rename the new one to the name originally chosen by the user."
    This seems like a lot of trouble, especially as I often work on several documents at the same time.
    "By the way, the finder has a "clean up by" menu that rearranges icons in one of the standard orders, there are shortcuts that produce the same effect, for example <option><cmd>1 sorts them by name. Is it possible that this shortcut was typed by mistake without you noticing?"
    I do know about this "clean up by" option, and avoid it like the plague! So I doubt this is the issue, and I infrequently use keyboard shortcuts like this anyway.
    Thanks all who replied. None of the suggestions seem to work, however. Any others out there?
    Regards,
    Sara

  • AutoSize not working properly in TextField when using non-zero line spacing

    When using non-zero line spacing, the autoSize property is not functioning as expected, causing text fields to scroll that shouldn't.  Also, when using device fonts, the sizes of the TextFields are wrong in the Flash IDE.
    I have a TextField whose height is supposed to be dynamic, depending the width of the TextField.  wordWrap is true, the text is left aligned, and the autoSize value is flash.text.TextFieldAutoSize.LEFT.
    When the TextField's width is adjusted, the height increases or decreases as expected, but when I scroll the mouse wheel over the TextField, it allows a single line to scroll out of view.  This should not be happening.  The autoSize property should ensure the TextField is large enough to neither require nor allow scrolling.
    Has anyone else encountered this issue or know how to fix it?
    Update: Been a problem since at least 2006! > http://blog.nthsense.net/?p=46
    http://www.kirupa.com/forum/showthread.php?288955-Disabling-textfield-scrolling   Bug is caused by using a line height ("line spacing" in Flash) larger than zero, for example 1.0pt.  It looks like when I reduce the line spacing of the text field to zero, the issue goes away.  There doesn't seem to be anything wrong with how autoSize is calculating the required height of the text (i.e. it is exactly textHeight + 4 pixel gutter, and drawing the rectangle (2,2,textWidth,textHeight) aligns visually with the text), so it must have to do with how the TextField is deciding whether it needs to scroll or not, and that separate calculation is being thrown off by the non-zero line spacing.  The additional non-zero spacing at the end of the last line could be making the TextField think it needs to scroll, even though it's hight is sufficient at "textHeight + 4".  Apparently the problem manifests when using a non-zero leading value as well.
    In fact, it has to be related to the leading value exactly, since the following code stops the textfield from scrolling.
    //body is TextField
    var tlm:TextLineMetrics = body.getLineMetrics(body.numLines - 1);
    trace(tlm.leading); //traces "1" here.  traces zero when line spacing is zero, and traces larger values with larger line spacing values
    body.autoSize = flash.text.TextFieldAutoSize.NONE; //turn off autosize so the height can be set manually
    body.height += tlm.leading; //increase height of textfield by leading value of last line to cause scrolling to be turned off.
    Honestly, this is pretty unacceptable bug.  First of all, scrolling should not be sensitive to trailing line spacing, because autoSize and textHeight do not include it. It need to be consistent, and I think textHeight and autoSize setting height = textHeight + 4 is correct.  Vertical scrolling should use textHeight as it's guage for whether scrolling is necessary, but instead, it's obviously involving the leading values of the last line.  At the very least, vertical scrolling should simply be disabled when autoSize is turned on and wordWrap is true, because the TextField should be big enough to fit all the text.  The workaround of manually adjusting the height is also no good, since turning autoSize back on will immediately change the size back and trigger scrolling again.  I also shouldn't have to set line spacing to zero just to use the autoSize feature, since the scrolling calculations are wrong in this way.

    No, lol.  Luckly, I replace most of my TextFields on the display list with my subclass TextFieldEx.  I just call a clone method that accepts a TextField and returns a TextFieldEx with identical properties.
    I corrected the problem via modifying the subclass to behave differently when autoSize is not NONE and wordWrap is true.  Under those conditions, the maxScrollV and scrollV property values are fixed at 1, and the class listens for its own SCROLL event and sets scrollV to 1 when it occurs.  That allows me to leave everything else alone, including text selection, and use whatever line spacing I want.
    The modification seems to work fine so far.
    For anyone interested in doing something similar, here is a clone method that will copy a TextField.
    public static function clone( t:TextField ):TextFieldEx
                                  var te:TextFieldEx = create( "", t.width, t.type, t.multiline, t.wordWrap, t.selectable, t.embedFonts, t.defaultTextFormat );
                                  te.alpha = t.alpha;
                                  te.alwaysShowSelection = t.alwaysShowSelection;
                                  te.antiAliasType = t.antiAliasType;
                                  te.autoSize = t.autoSize;
                                  te.background = t.background;
                                  te.backgroundColor = t.backgroundColor;
                                  te.blendMode = t.blendMode;
                                  //te.blendShader = t.blendShader;
                                  te.border = t.border;
                                  te.borderColor = t.borderColor;
                                  te.cacheAsBitmap = t.cacheAsBitmap;
                                  te.condenseWhite = t.condenseWhite;
                                  te.displayAsPassword = t.displayAsPassword;
                                  //te.embedFonts = t.embedFonts;
                                  te.filters = t.filters;
                                  te.gridFitType = t.gridFitType;
                                  te.height = t.height;
                                  te.opaqueBackground = t.opaqueBackground;
                                  te.restrict = t.restrict;
                                  //te.selectable = t.selectable;
                                  te.sharpness = t.sharpness;
                                  te.thickness = t.thickness;
                                  te.transform = t.transform;
                                  //te.type = t.type;
                                  te.useRichTextClipboard = t.useRichTextClipboard;
                                  //te.wordWrap = t.wordWrap;
                                  //Assign text last
                                  te.htmlText = t.htmlText;
                                  return te;
    //And the create method it uses
    public static function create( text:String = "", width:Number = NaN, type:String = null, multiline:Boolean = false, wordWrap:Boolean = false, selectable:Boolean = true, embedFonts:Boolean = false, font_or_textformat:*=null, size:Object=null, color:Object=null, bold:Object=null, italic:Object=null, underline:Object=null, url:String=null, target:String=null, align:String=null, leftMargin:Object=null, rightMargin:Object=null, indent:Object=null, leading:Object=null ):TextFieldEx
                                  var tf:TextFieldEx = new TextFieldEx();
                                  tf.width = isNaN(width) ? 100 : width;
                                  tf.defaultTextFormat = (font_or_textformat is TextFormat) ? (font_or_textformat as TextFormat) : new TextFormat( font_or_textformat as String, size, color, bold, italic, underline, url, target, align, leftMargin, rightMargin, indent, leading );
                                  tf.embedFonts = embedFonts;
                                  tf.multiline = multiline;
                                  tf.wordWrap = wordWrap;
                                  tf.selectable = selectable;
                                  tf.type = type;
                                  tf.text = text; //setting text last ensures the text line metrics returns correct values
                                  //Initialize the TextField's size to fit the text.
                                  if (!multiline)
                                            //When in single-line mode and no specific width is given,
                                            //expand width to entire line.
                                            if (isNaN(width))
                                                      tf.width = tf.textWidth + 4; //match width of text
                                  //Height is always automatically adjusted to fit the text by default.
                                  //It's better than the arbitrary 100px default height.
                                  var minimum_height = tf.getLineMetrics( 0 ).height;
                                  var h:Number = tf.textHeight;
                                  tf.height = (h < minimum_height) ? (minimum_height + 4) : (h + 4); //match height of text, ensuring height is at least enough to display one line, even if there is no text
                                  return tf;

  • Filter Data with Merged and non merged columns in one

    Hi there,
    I have an excel spreadsheet that has got merged and non merged columns. What I want to be able to do is, filter a row that has got merged column and non merged columns. But when I filter it only takes the first line, rather than the merged and non merged
    columns.
    With this data I have one merged column which spans 6 rows, and then in the same row I have 6 rows with different points in, and what I want to do is filter my list, but be able to see the merged coloum aswell as the 6 points.
    Any ideas are much appriciated.
    Cheers
    SAN

    You cannot filter across a row - so I have assumed that what you mean is that some cells in columns are merged to serve as the headers, and the data is in the came columns but in the row(s) below the header. If this is incorrect, ignore this post.
    For this example, I have assumed E to J are the column of data and merged cells, column K is free, and the first merged header is in row 1:
    In K1, enter
    =E1
    in K2, enter
    =IF(COUNTA(E2:J2)=1,E2,K1)
    and copy down. Then filter based on column K, and it will show the headers and the data for the selected header value.
    HTH, Bernie

  • Region sql query(updateable report) data entry in non db columns

    In a tabular report type updateable report
    What is the best way to provide data entry into a non db column a) (to accept parameters for some on demand pl/sql processes)?
    Only when setting a) as a standard report column the db insert/update transaction can be processed
    When changing a) to text field the db insert/update transaction fails with en error (screen/db are not in sync which is not actually the case)
    a) should not be part of the db insert/update transactions but still allow data entry
    How can this be achieved?
    Thanks
    Peter

    Hi Peter,
    I think the easiest solution is to use an updateable view instead of the direct table access.
    Here is an example:
    CREATE OR REPLACE VIEW V_EMPLOYEES
    AS
    SELECT EMPLOYEE_ID
         , FIRST_NAME
         , LAST_NAME
         , FIRST_NAME||' '||LAST_NAME AS FULL_NAME
      FROM EMPLOYEES
    CREATE OR REPLACE TRIGGER TRG_V_EMPLOYEES
        INSTEAD OF INSERT OR UPDATE OR DELETE
        ON V_EMPLOYEES
        REFERENCING NEW AS new OLD AS old
        FOR EACH ROW
    BEGIN
        IF UPDATING
        THEN
            UPDATE EMPLOYEES
               SET FIRST_NAME = :new.FIRST_NAME
                 , LAST_NAME  = :new.LAST_NAME
             WHERE EMPLOYEE_ID = :old.EMPLOYEE_ID
        -- insert and delete is not allowed
        ELSIF INSERTING
        THEN
            NULL; -- there would be a insert code
        ELSIF DELETING
        THEN
            NULL; -- there would be the delete code
        END IF;
    END;
    /FIRST_NAME||' '||LAST_NAME AS FULL_NAME in the example view simulates your function call.
    There might be a possibility to do it in APEX as well, but that was the first solution which came into my mind.
    Patrick
    Check out my APEX-blog: http://inside-apex.blogspot.com
    Check out the ApexLib Framework: http://apexlib.sourceforge.net

  • Displaying a non existent column from a Table.

    Hi
    I have an SQL Query that returns back a count of all the
    entities
    select count(*)'COUNTER',
    id_entity 'ENTITY'
    from  claim 
    where id_status = 'O'
    group by id_status,id_entity 
    order by id_entity ASC
    Output
    COUNTER ENTITY
    169     AGL
    6       DBC
    28      DELI would like to put a non existent column called 'Type' with a counter
    of 0,so that the output looks like :
    COUNTER ENTITY
    0       TYP
    169     AGL
    6       DBC
    28      DELIs this possible ? What do I need to change in my select clause
    for this?
    Please help

    monalalwani, do you mean something like this?
    you have -
    1 select count(*) as counter, deptno
    2 from emp
    3* group by deptno
    UT1 > /
    COUNTER DEPTNO
    5 10
    5 20
    6 30
    -- but want counter = 0 for dept 0
    UT1 > select count(*) as counter, deptno
    2 from emp
    3 group by deptno
    4 union
    5 select 0, 00
    6 from dual
    7 /
    COUNTER DEPTNO
    0 0
    5 10
    5 20
    6 30
    HTH -- Mark D Powell --

  • Order By Clause on Non-Database Column using Forms

    How to Sort by using Order by Clause on Non-Database Column using Forms6i

    Eugene,
    What is the error message/ number you are seeing? If you run "select name from tblperson order by name" do you still get an error?

  • ABAP Query - How to display non-zero entries

    Hi All,
    I have created a simple query having the join of 4 tables.
    Now I need to display the output for only non-zero entries of a particular field.
    How this can be achieved ?
    Please let me know-
    1) Either , there are ways to restrict the entries during selection itself(I do not want to give this field in selection screen)
    2) Or , Delete the entries having zero value before display.
    I debugged the standard report for query and found out the internal table where the
    result is stored, but it is not allowing to be used in the coding sections of infoset.
    Thanks ,
    Neethu

    In select add condition field1 NE 0 or SPACE.
    Edited by: Shaik Hussain on Nov 30, 2010 1:46 PM

  • How to Hide "Select All | Select None" options for tableSelectMany?

    I don't want to display this - is there a way to hide or not render these options? thanks

    Hi Gaurav,
    I have added detail region in Advanced table components and if i use standard Multiselection feature the select column will be displayed first in the table but here the framework by default displays select all and select none links.
    I though of adding a data column in advance table and add a item of type MessageCheckbox but since i have detail region the custom select column is displaying next to detail column but they want to display select column in the beginning.
    Hope ur clear of the requirement.
    Thanks
    Babu

  • How to Get ZERO and Non-ZERO Values in rowcount using Group by?

    Dear All,
    How can I get Non-ZERO and ZERO row count values in SQL using Group by? I can get non-zero values but when I want NULL should be returned to non-zero values it is ignoring ZERO values in output?
    Any hint?
    Thanks
    GQ

    Hi,
    Something like
    select count(case col
                    when 0
                    then 1
                  end) zero_count,
           count(case nvl(col,1)
                    when 0
                    then null
                    else 1
                  end) nonzero_countRegards
    Peter

  • One can create an index on a non-existent column in a table

    I am using Oracle 10.2.0.3 on Windows 2003. I wanted to create an index on columnb of
    Tablea. When I use statement like:
    Create index index1 on tablea (‘columnb’) …
    Oracle created index: index1. However, when I looked tat the column in user_ind_columns it had some weird colculn like SYS_NCxxxx. For sometime, I had
    No idea what was going on. My index was not being used in queries at all. Then it dawned on me that I should not put single quotes around columnb. Once I removed quotes, things worked as expected.
    But why does Oracle allow index on a non-existent column?

    we cannot create the index on nonexistent column of table We can. Its called a function-based index. Here's how we do it.
    Also read Howard's reply, right above yours.
    SQL> desc t
    Name                                      Null?    Type
    OWNER                                     NOT NULL VARCHAR2(30)
    OBJECT_NAME                               NOT NULL VARCHAR2(30)
    SUBOBJECT_NAME                                     VARCHAR2(30)
    OBJECT_ID                                 NOT NULL NUMBER
    DATA_OBJECT_ID                                     NUMBER
    OBJECT_TYPE                                        VARCHAR2(19)
    CREATED                                   NOT NULL DATE
    LAST_DDL_TIME                             NOT NULL DATE
    TIMESTAMP                                          VARCHAR2(19)
    STATUS                                             VARCHAR2(7)
    TEMPORARY                                          VARCHAR2(1)
    GENERATED                                          VARCHAR2(1)
    SECONDARY                                          VARCHAR2(1)
    SQL> create index t_idx on t( substr(object_name, 1, 5));
    Index created.
    SQL> select column_name from user_ind_columns where index_name = 'T_IDX';
    COLUMN_NAME
    SYS_NC00014$
    SQL> select index_type from user_indexes where index_name = 'T_IDX';
    INDEX_TYPE
    FUNCTION-BASED NORMAL
    SQL>

Maybe you are looking for

  • How can i create a simple netweaver portal page that shows text and images?

    Hi, i have a simple question or maybe it's not so simple. I am completly new to SAP Netweaver 2004s Portal. At the moment i'm trying to understand the struture of the whole thing. I already know how to create roles, worksets and pages and i know how

  • To delete a request from ODS

    Hello all, I am not able to delete the request from ODS . It gives the error message :no request found in the change log. how shlould i delete the request?? thnx in advance. Regards, Dhanya.

  • Creating drop down list program?

    how to create the dropdownlist program?

  • Install hangs at 67% file expansion

    I have a brand new Macbook Pro, Retina display.  For business I need to install Windows, and prefer Windows 7.  I purchased a download with ISO image.  Followed the Boot Camp instructions which worked very well until I got to the install screen "Expa

  • Trying to create

    I have created a Menu with 5 buttons. The first button says PLAY ALL which means all the chapters on this certain track will play. My client also wanted to have each individual chapter as a button, so he could play just a single chapter and have the