in the dynamic chain of the clause

Select all_group_id in the iolm_subelementgrp where type = "connect";

ALL_GROUP_ID

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

3,4,5

requirement:

Select * from iolm_linkthresholdgrp

where group_id in (3,4,5);  -How can I put values 'to' article like this dynamically, which is a discount on top of SQL?

Select * from iolm_linkthresholdgrp

where group_id in (select all_group_id in the iolm_subelementgrp where type = 'Connect');

ORA-01722: invalid number

01722 00000 - "invalid number."

* Cause:

* Action:

Happy!

Select regexp_substr('1,20,300','[^,]+',1,level)

of the double

connect by level<=>

First see how it works!

It should work-

Select *.

of iolm_linkthresholdgrp

where group_id in)

Select regexp_substr(all_group_id,'[^,]+',1,level)

of iolm_subelementgrp

When type = "sign in".

connect by level<=>

);

I hope this helps!

Tags: Database

Similar Questions

  • Understand the dynamic conditions in which the clause

    Hi all
    I have a requirement where I need to dynamically register the conditions in which the clause based on the variable binding.

    My condition is like that.

    SELECT f.scheduled_date, a.bld_id, a.room_id, a.cage_id, f.test_num
    OF feeding_test_results f.
    v_onl_gf_anmls one
    WHERE f.sak_feeding_test_res > 5000000
    AND f.anml_id (+) = a.anml_id
    AND f.bld_id = 'A5 '.
    AND f.room_id > 0
    AND f.cage_id > '0'
    -case when: check_value = 1 Then
    "AND scheduled_date < = 16 April 2009"
    ' AND scheduled_date > = 6 April 2009.
    On the other
    AND scheduled_date = April 16, 2009"
    End
    AND f.feeding_status <>'X') f



    Kindly somebody help me how to do this.


    Thank you and best regards,
    P. Gesret Devi

    michaels2 wrote:

    and scheduled_date <= case when :check_value = 1 then date '2009-04-16' end
    and scheduled_date >= case when :check_value = 1 then date '2009-04-06' end
    and scheduled_date = case when not :check_value = 1 then date '2009-04-16' end
    

    Hmmm, maybe you want some NVL around these statements of cases such as...

           and scheduled_date <= NVL(case when :check_value = 1 then date '2009-04-16' end,scheduled_date)
           and scheduled_date >= NVL(case when :check_value = 1 then date '2009-04-06' end,scheduled_date)
           and scheduled_date = NVL(case when not :check_value = 1 then date '2009-04-16' end,,scheduled_date)
    

    or something like this. Otherwise the comparisons with null will just because all this to fail.

  • Question of the Clause

    Hello
    I have a query like the following.
    ------------------------------------------------
    with base as
    (
    Select date, cust_id, amount
    several tables
    Union of all the
    Select date, cust_id, amount
    several tables
    )

    Select * Basic
    where snapshot_date = July 31, 2014"
    -------------------------------------------------
    This query is too long. If I throw ' where snapshot_date = July 31, 2014 ' ' for both selects in the "-with clause", it's really fast. This is because all the tables in the db have indices on the field of snapshot_date.
    It seems that the with clause creates a view with all stereotypes, rather than just July 31, 2014. Y at - there a way to force the "-with clause" to retrieve data for only snapshot_date = July 31, 2014 ' as specified in the main query above without using where clause within the "with clause"?

    Thanks a lot to all the...

    As Gaff has suggested, I begin to believe that the WITH Clause is actually a temporary display based only on what is covered by the clause.

    Maybe it did and maybe it isn't. There is NO value to speculate unless you use this speculation to actually test your assumptions.

    In my case, there are 30 years of history.

    So why do you need to do a UNION ALL operation to get the results? Why can't simply run both queries separately?

    The optimizer does not resemble what data are used.

    More speculation on your part. I can create a simple example of the SCOTT schema on 11.2.0.1.0 vanilla that uses the index.

    create the table emp_copy1 in select * from emp;

    create the table emp_copy2 in select * from emp;

    create index emp_copy1_ndx on emp_copy1 (deptno);

    create index emp_copy2_ndx on emp_copy2 (deptno);

    explain plan for
    with base as
    (
    Select ename, empno and deptno from emp_copy1
    Union of all the
    Select ename, empno and deptno from emp_copy2
    )
    Select * base where deptno = 20;

    Select * from table (dbms_xplan.display_cursor ())

    PLAN_TABLE_OUTPUT

    SQL_ID, 77q19ypwbjkvq, number of children 0

    -------------------------------------

    with base (select empno, ename, deptno emp_copy1 Union all the)

    Select empno, ename, deptno emp_copy2) select * base where

    DEPTNO = 20

    Hash value of plan: 2111487496

    -----------------------------------------------------------------------------------------------

    | ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time |

    -----------------------------------------------------------------------------------------------

    |   0 | SELECT STATEMENT |               |       |       |     4 (100) |          |

    |   1.  VIEW                         |               |    10.   330.     4 (0) | 00:00:01 |

    |   2.   UNION-ALL |               |       |       |            |          |

    |   3.    TABLE ACCESS BY INDEX ROWID | EMP_COPY1 |     5.   165.     2 (0) | 00:00:01 |

    |*  4 |     INDEX RANGE SCAN | EMP_COPY1_NDX |     5.       |     1 (0) | 00:00:01 |

    |   5.    TABLE ACCESS BY INDEX ROWID | EMP_COPY2 |     5.   165.     2 (0) | 00:00:01 |

    |*  6 |     INDEX RANGE SCAN | EMP_COPY2_NDX |     5.       |     1 (0) | 00:00:01 |

    -----------------------------------------------------------------------------------------------

    Information of predicates (identified by the operation identity card):

    ---------------------------------------------------

    4 - access ("DEPTNO" = 20)

    6 - access ("DEPTNO" = 20)

    Note

    -----

    -dynamic sample used for this survey (level = 2)

    Which show the index range scan is done for both tables. These statistics are current since Oracle collected his stats when the indexes have been built

    I think that there is no solution to this problem

    . No, unless indicate you at least a way for us to reproduce the problem.

  • Selection of the list of clients using the clause "EXISTS".

    Dear all,

    I have 3 tables, say,

    TABLE1:

     

    CUST_CODE

    (PRIMARY KEY)

    CUST_NAME

    CUST_COUNTRY_CODE

    CUST_CITY_CODE

    CUST_AREA_CODE

    A

    CUST1

    COU1

    CIT1

    A1

    B

    CUST2

    COU2

    CIT2

    A2

    C

    CUST3

    COU2

    CIT2

    A3

    D

    CUST4

    COU3

    CIT4

    A4

    E

    CUST5

    COU3

    CIT5

    A5

    TABLE2

     

    STOCK_SYS_ID

    (PRIMARY KEY)

    STOCK_CUSTOMER_CODE

    STOCK_CUSTOMER_

    COU_CODE

    STOCK_

    CUSTOMER_

    CIT_CODE

    STOCK_

    CUSTOMER_

    ARE_CODE

    STOCK_DOC_

    CREATED

    1

    A

    [Leaving empty as we have reference only to the customers and the date here...]

    10/15/2015

    2

    B

    15/09/2015

    3

    A

    16/08/2015

    4

    C

    18/08/2015

    5

    E

    22/07/2015

    6

    C

    31/01/2015

    7

    A

    15/10/2014

    TABLE 3

     

    AREA_CODE

    AREA_COUNTRY_CODE

    AREA_CITY_CODE

    A1

    COU1

    CIT1

    A2

    COU2

    CIT2

    A3

    COU3

    CIT2

    A4

    COU3

    CIT3

    A5

    COU4

    CIT5

    How can I find the list of clients of TABLE1, which are present in TABLE2 by 2015 and have country-city-zone, both correct mapping as specified in section TABLE3 using the clause "EXISTS".

    Is that my output will be like,

     

    CUST_CODE

    (ONLY CORRECT CUSTOMER CODES)

    CUST_NAME

    A

    CUST1

    B

    CUST2


    Thanks in advance,

    Séverine Suresh

    Hello

    So, you want to see 3 columns in table1 correspond to 3 columns in t3.  It is not enough for only 1 column equal:

    Area_Code must be equal

    country_code and must be equal

    city_code and must be equal.

    Here's a way to encode that, by using the EXISTS operator in a WHERE clause:

    SELECT cust_no, cust_name

    FROM table1 t1

    WHEN THERE IS)

    SELECT 0

    Table 3 T3

    WHERE t3.area_code = t1.cust_area_code

    AND t3.area_country_code = t1.cust_country_code

    AND t3.area_city_code = t1.cust_city_code

    )

    ;

    I hope that answers your question.

    If not, please post a small example of data (CREATE TABLE and only relevant columns, INSERT statements) for all of the tables involved and the results you want to start from these data (otherwise what you've posted already).

    Explain, using specific examples, how you get these results from these data.

    Always say what version of Oracle you are using (for example, 11.2.0.2.0).

    See the FAQ forum: Re: 2. How can I ask a question on the forums?

  • WITH THE CLAUSE

    Hi all

    I'm using oracle 11.2.0.4

    I m using this for the purpose of learning

    Below is my table and insert statement

    CREATE TABLE COMPANY (NUMBER EMPLOYEE_ID, EMPLOYEE_NAME VARCHAR2 (30), NUMBER OF MANAGER_ID)

    INSERT INTO THE COMPANY'S VALUES (1, 'FRED', ");

    SOCIETY VALUES (2, 'BARNEY', '1');

    SOCIETY VALUES (3, 'WILMA', '1');

    SOCIETY VALUES (4, 'BETTY', '3');

    INSERT IN THE VALUES(5,'PEBBLES','3') SOCIETY;

    INSERT IN THE VALUES(6,'BAM-BAM','4') SOCIETY;

    INSERT IN THE VALUES(7,'DINO','4') SOCIETY;

    INSERT IN THE VALUES(8,'HOPPY','4') SOCIETY;

    WITH RSFC(CK,PK,LVL,HIER) AS

    (SELECT EMPLOYE_ID, MANAGER_ID, 0 AS LVL, EMPLOYEE_NAME LIKE YESTERDAY)

    SOCIETY

    WHERE MANAGER_ID IS NULL

    UNION ALL

    SELECT EMPLOYE_ID, MANAGER_ID, LVL + 1, YESTERDAY. '/' || EMPLOYEE_NAME

    OF THE RSFC R INNER JOIN COMPANY F

    ON R.CK = F.MANAGER_ID

    )

    WIDTH OF SEARCH FIRST BY CK ORDR SET

    SELECT A.LVL, A.CK, A.PK, A.HIER, ORDR

    THE RSFC HAS

    ORDER BY ORDR

    01FRED1
    121FRED/BARNEY2
    131FRED/WILMA3
    243FRED/WILMA/BETTY4
    253FRED/WILMA/PEBBLES5
    364FRED/WILMA/BETTY/BAM-BAM6
    374FRED, WILMA, BETTY, DINO7
    384FRED, WILMA, BETTY, HOPPY8

    First part, I believe, as well, explains Frank

    hierarchical queries

    next part in bold, I need to understand

    Thanks and respect.

    Guylaine

    Hi, lyly,

    You said that you did not understand the part highlighted in your query.  It looks like the 2 lines are highlighted:

    WIDTH OF SEARCH FIRST BY CK ORDR SET

    SELECT A.LVL, A.CK, A.PK, A.HIER, ORDR

    I guess that it's a typo.  The 2nd day of these lines is just the main SELECT clause; This is the 1st line, the clause of the SEARCH, who really needs an explanation.

    As far as I know, the SEARCH clause is only for the sorting of the results.  In other words, the a WITH recursive clause results will be the same, no matter what you put in the SEARCH clause, or if you omit the clause of RESEARCH.  The only purpose of the clause of RESEARCH is to generate the column command (ORDR in your example), which reflects where each row fits in the graph defined by your recursive query.  (Maybe, if you use non-deterministic user-defined functions, it can be a difference in the results.  Chances are, you never have to worry about this).

    If you do not use a clause in RESEARCH at all, it seems like by default

    WIDTH OF SEARCH FIRST BY NULL...

    In other words, the lines appear in order by level and in no particular order after that.  In your case, that would mean 'FRED' would come first, then "BARNEY" and "WILMA" (not necessarily in that order), followed by all the children of 'BARNEY' or 'WILMA' and so on.  No column order would be generated, so you could not guarantee order in the ORDER BY clause.

    I'm not sure that there is nothing you can do with a clause of RESEARCH that you can not do without a.  In other words, the SEARCH clause automatically generates a command column.  I believe you can still create an equivalent ordering column in the recursive query itself.  In your example, you could say

    ORDER BY lvl, ck

    to get the results sorted the same way.  Sometimes, using a SEARCH clause is much more convenient, and I bet that sometimes it is therefore more effective, too.

    2937991 wrote:

    Hi all

    I'm using oracle 11.2.0.4

    I m using this for the purpose of learning

    Below is my table and insert statement

    CREATE TABLE COMPANY (NUMBER EMPLOYEE_ID, EMPLOYEE_NAME VARCHAR2 (30), NUMBER OF MANAGER_ID)

    INSERT INTO THE COMPANY'S VALUES (1, 'FRED', ");

    SOCIETY VALUES (2, 'BARNEY', '1');

    ...

    As always, thank you for posting this information: it really helps!

    Manager_id is a NUMBER, it would be better if you don't quote it.  In other words, it would be more clear, more effective and less prone to say:

    INSERT INTO COMPANY (EMPLOYE_ID, EMPLOYEE_NAME, MANAGER_ID) VALUES (1, 'FRED', NULL);

    INSERT INTO COMPANY (EMPLOYE_ID, EMPLOYEE_NAME, MANAGER_ID) VALUES (2, 'BARNEY', 1);

    ...

    In this example, the unnecessary quotation marks do not hurt a lot, but they do not help all.

  • SQL query help needed in the Clause type

    Hello

    I'm currently learning Clause type. How can I write in the clause type to get the result below:

    I have a table like this

    DEPTNO ENAME

    -------           ------

    20 SMITH

    CELINE 10

    BOND 20

    ALLEN 30

    WARD 30

    20 JONES

    30 MARTIN

    30 BLAKE

    10 CLARK

    SCOTT 20

    10 KING

    30 TURNER

    20 ADAMS

    30 JAMES

    20 FORD

    10 MILLER

    I want the output should look like this

    DEPTNO ENAME

    ------     -----

    CELINE 10, CLARK, KING, MILLER

    20 JONES, ADAMS, BOND, FORD, SCOTT, SMITH

    30 MARTIN, JAMES BLAKE, WARD, TURNER, ALLEN

    Hear is the script I am currently working on.

    with emp_group as

    (

    Select 20 deptno, ename 'SMITH' Union double all the

    choose 10, 'CÉLINE' from dual union all

    Select 20, "BOND" of all the double union

    Select 30, 'ALLEN' from dual union all

    Select 30, 'WARD' of all the double union

    Select 20, "JONES' from dual union all

    Select 30, 'MARTIN' from dual union all

    Select 30, "BLAKE" from dual union all

    choose 10, 'CLARK' from dual union all

    Select 20, 'SCOTT' from dual union all

    choose 10, 'KING' of the dual union all

    Select 30, 'TURNER' from dual union all

    Select 20, 'ADAMS' from dual union all

    Select 30, 'JAMES' of the dual union all

    Select 20, 'FORD' Union double all the

    choose 10, 'MILLER' from dual

    )

    Select

    DEPTNO

    A1

    of emp_group

    model

    ignore the nav

    partition (deptno)

    dimension (ROW_NUMBER() over (PARTITION BY deptno ORDER BY ename DESC) rn)

    measures (ename, LPAD(' ', 100) A1)

    rules)

    A1 [rn > 0] = ename [cv ()],

    A1 [0] = ename [cv ()]

    )

    order by deptno

    ;

    your help is very appreciated.

    Thank you in advance.

    Try this.

    Select

    *

    Of

    (

    with emp_group as

    (

    Select 20 deptno, ename 'SMITH' Union double all the

    choose 10, 'CÉLINE' from dual union all

    Select 20, "BOND" of all the double union

    Select 30, 'ALLEN' from dual union all

    Select 30, 'WARD' of all the double union

    Select 20, "JONES' from dual union all

    Select 30, 'MARTIN' from dual union all

    Select 30, "BLAKE" from dual union all

    choose 10, 'CLARK' from dual union all

    Select 20, 'SCOTT' from dual union all

    choose 10, 'KING' of the dual union all

    Select 30, 'TURNER' from dual union all

    Select 20, 'ADAMS' from dual union all

    Select 30, 'JAMES' of the dual union all

    Select 20, 'FORD' Union double all the

    choose 10, 'MILLER' from dual

    )

    Select

    DEPTNO

    names

    rn

    of emp_group

    model

    ignore the nav

    partition (deptno)

    dimension of)

    ROW_NUMBER() over (PARTITION BY deptno ORDER BY ename) rn

    )

    measures (ename, cast (null as names of varchar2 (40)))

    rules

    (

    names [any] order by desc = ename [cv ()] rn | «, » || names [cv () + 1]

    )

    order by deptno

    )

    where rn = 1

    Best regards, Andrei

  • How to use the clause type conditionally create new lines

    This question is just for learning - no object other than to start real world to create versions of some queries known to learn how to measure the performance of the MODEL clause clause of the MODEL versions.

    The question is: How can you write a STANDARD clause that pivots (updates) ONLY the lines that actually need to rotate and do NOT change the lines that have no value and cannot be rotated.

    I found a good site that has about two dozen example articles on different pieces. This first link is the beginning of the series.

    SQL features tutorials - Clause TYPE

    http://www.sqlsnippets.com/en/topic-11663.html

    This link is to a clause of FAQ of BluShadow MODEL version "how to convert rows to columns."

    Line - MODEL method string

    http://www.sqlsnippets.com/en/topic-11987.html

    The solution to this link uses this line of source:

    POSITION KEY VAL

    --- ---------- ----------

    R08 0 v1, v2, v3,.

    and this result set:

    POSITION KEY VAL

    --- ---------- ----------

    R08 1 v1

    R08 2 v2

    R08 3 v3

    The reason why it produces that result set is this clause of the statement of MODEL

    RETURN THE UPDATED LINES

    If you comment on this article, you will see that the original lines are all in position 0. This means that the solution reproduced EACH SOURCE LINE even if there is only one item in the list of values.

    Thus, even a line source with a single value (for example, the r01 'a') will be updated and updated this line is returned.

    For a large number of data sources with only a few lines that actually need to rotate it would be a great performance of infringement.

    This is the sample data source

    with t as (button 1, 'a' value 'abc' col2, col3 'def' of the double
    Select Union all 2, 'b', 'ghi', 'jkl' from dual
    Union all select 3, 'c, d, e, 'mno', 'pqr' from dual.
    Union all select 4, 'f', 'stu', 'vwx' from dual
    )
    Select the key, value, col2, col3
    t

    KEY, VALUE, COL2, COL3
    1, a, abc, def
    2, b, GHI, jkl
    3, "c, d, e, mno, pqr.
    4, f, stu, vwx

    Lines 1, 2 and 4 only have a value of (a, b, c respectively.

    Only line 3 must rotate. It contains "c, d, e" and which must become 3 lines in the result set

    Value of the key, col2 col3
    1 an abc def
    2B ghi jkl
    3 c mno, pqr
    3 d mno, pqr
    3 e mno, pqr
    4 f stu vwx

    The nut of the problem is that if the clause 'RETURN UPDATED ROWS' is used, then the lines 1, 2 and 4 must be updated in order to be returned in the result set. And if this clause is NOT used, then line 3 must be updated by 'c', d, e 'c' and two new product lines: one line for a ' and one for 'e '.

    How can you do this with the TYPE clause without the help of the clause "Return LINES UPDATE"? I don't have a solution to sample showing what I tried because I can't understand what it takes to even try.

    I have a solution that uses "RETURN UPDATED ROWS" but I want to compare this performance to the exercise, when this clause is NOT used.

    We ask BluShadow to add the solution of MODEL clause to this FAQ with other similar solutions.

    Like this?

    SQL > with t as
    () 2
    3 select the 1 key, 'a' val, 'abc' col2, col3 'def' of the double


    Select 4 Union all 2, 'b', 'ghi', 'jkl' from dual
    5 union all select 3, 'c, d, e, 'mno', 'pqr' from dual.
    Select 6 Union all the 4 'f', 'stu', 'vwx' from dual
    7)
    8. Select the key
    9, key_1
    10, val
    11, regexp_substr (val, ' [^,] +', 1, key_1) val_new
    12, col2
    13, col3
    14 t
    model 15
    16 partition by (key)
    dimension (1 key_1) 17
    18 measures (val, col2, col3, (length (val) - length (replace (val, ",")) + 1) as len)
    19 rules
    (20)
    21 val [for 1 to increment of len key_1 [1] 1] = val [1]
    22, col2 [for 1 to increment of len key_1 [1] 1] = col2 [1]
    23, col3 [for 1 to increment of len key_1 [1] 1] = col3 [1]
    24)
    25 order
    26 by key
    27, key_1;

    KEY KEY_1 VAL VAL_N NECK NECK
    ---------- ---------- ----- ----- --- ---
    1 1 has an abc def
    2 b 1 b ghi jkl
    3 1 c, d, e c mno pqr
    3 2 c, d, e d mno pqr
    3 3 c, d, e e mno pqr
    4 1 f f stu vwx

    6 selected lines.

  • Nested set tables in select query "in the clause of" take long time

    create or replace type t_circuitids is table of the varchar2 (100);

    -Under anonymous block continues to run away and never ends

    DECLARE
    v_circuitid t_circuitids;
    number of v_count;
    l_circuitids VARCHAR2 (4000)
    : = "Value1, value2, value3, value4, Value5";
    BEGIN
    -Query below converts the output concatinated with commas to the list and stores it in the nested table collection v_circuitids
    WITH an ACE
    (SELECT ',' | l_circuitids |) ',' AS circuitid
    THE DOUBLE)
    SELECT DISTINCT TRIM (SUBSTR (circuitid,
    INSTR (circuitid, "," 1, LEVEL) + 1.
    INSTR (circuitid, "," 1, LEVEL + 1)
    -INSTR (circuitid, "," 1, LEVEL)
    -1
    )
    ) cid
    LOOSE COLLECTION v_circuitid
    A
    CONNECT BY LEVEL <
    LENGTH (circuitid)
    -LENGTH (REPLACE (circuitid, ','));

    SELECT COUNT (1)
    IN v_count
    TABLE
    WHERE name IN (SELECT COLUMN_VALUE
    TABLE (v_circuitid));
    END;
    /

    -I had the question, query "SELECT COLUMN_VALUE FROM TABLE (v_circuitid)" that is used in code above is responsible for this.

    -Same code works fine in development and Test environments, but prod it continues to work on

    -I solved this problem by creating a temporary table, loading of all values in the collection in the temporary table and using this temporary table "in the clause" "

    -Can answer why his behavior like this when I use the collection where clause?

    -I use Oracle 9i

    Here is a summary of the question and the solution for this.

    -Nested type to collect multiple values

    CREATE or REPLACE the TYPE t_circuitid IS TABLE OF VARCHAR2 (100);

    Below the code will simply on the run.

    DECLARE
    v_circuitid t_circuitid;
    v_count NUMBER;
    BEGIN
    SELECT nal_name
    LOOSE COLLECTION v_circuitid
    OF fs_head
    WHERE groupid = 10;

    SELECT COUNT (1)
    IN v_count
    OF fs_attrib
    WHERE NAME IN (SELECT COLUMN_VALUE
    TABLE (v_circuitid));

    Dbms_output.put_line (v_count);
    END;
    /

    Cause:-SELECT COLUMN_VALUE TABLE (v_circuitid)); -This request is causing problem

    Why?  : - Because the CBO does not know how many lines is present in the collection, by default it takes 8168 lines

    Note:-always happens, it depends on the volume of data in the table, the path chosen by CBO. In my case, the table is huge on prod compared to DEV so he was causing a problem.

    -The following modified code works very well

    DECLARE
    v_circuitid t_circuitid;
    v_count NUMBER;
    BEGIN
    SELECT nal_name
    LOOSE COLLECTION v_circuitid
    OF fs_head
    WHERE groupid = 10;

    SELECT COUNT (1)
    IN v_count
    OF fs_attrib
    WHERE NAME IN (SELECT / * + cardinality (20 t) * /)
    COLUMN_VALUE
    TABLE (v_circuitid) t);

    Dbms_output.put_line (v_count);
    END;
    /

    Solution:-used as cardinality hint below.

    SELECT / * + cardinality (20 t) * / t COLUMN_VALUE TABLE (v_circuitid);

    Using cadinality I am saying CBO which dataset contains 20 lines or less.

    If it is version of Oracle 10 g and more, we can use below code (CARD utility).

    SELECT COLUMN_VALUE TABLE (CARD ((v_circuitid))

    For more information reach me at [email protected]

    Thank you best regards &,.

    Amarnath a. Reddy.

  • Include as the value of the clause in the list of results

    I have several similar terms on the same column in my query. Is it possible to include the value of the clause type in the result set?

    For example

    SELECT * ADDR ADDRESS WHERE

    addr. Line LIKE '% 1% '.

    OR addr.line LIKE '% 2 '.

    OR addr.line LIKE '% 3% '.

    OR addr.line LIKE '% 4% ';

    The result set contains all the addresses including ONE, TWO, THREE, FOUR. Now, I would like to see the result defined as

    Address1ONE | ONE

    Address2TWO | TWO

    THREEaddr | THREE

    any clue?

    R

    Use CASE:

    SELECT addr.line,

    CASE

    WHEN addr.line LIKE '% 1% ' THEN 'ONE '.

    WHEN addr.line LIKE '% 2% ', THEN 'TWO '.

    WHEN addr.line LIKE '% 3% ' THEN 'THREE '.

    ELSE 'FOUR '.

    END

    The ADDRESS ADDR

    WHERE addr.line LIKE '% 1% '.

    OR addr.line LIKE '% 2 '.

    OR addr.line LIKE '% 3% '.

    OR addr.line LIKE '% 4% '.

    /

    SY.

  • Problem with the case where the clause

    Hello

    I want to use cases in which clause. I wrote a very simple query to test how it works. However, I always got an error message. Here's what I did.

    Select eid, firstname, lastname from employee where eid = 1 works fine

    Select eid, name, name of the employee

    where

    cases where 1 = 1 then eid = 1

    When 1! = 1 then eid = 2

    end

    I ORA-00905: lack of keyword.

    Did I miss something?

    Thank you

    Jennifer

    Hi, Jennifer.

    Why do you want to use BOX in a WHERE clause?  The wonderful thing about the CASE is that it allows you to do IF-THEN-ELSE logic.  In a SELECT clause, or an ORDER BY clause, this is really useful, but the WHERE clause already allows you to use the IF-THEN-ELSE logic.

    However, if you use the BOX in a WHERE clause, it is as it does nowhere else.  Always BARGAIN instead of a single expression in a SQL data types.  All the clauses THEN (and ELSE, if there is one) must return a single expression, such as the NUMBER.  (There is no BOOLEAN data type in SQL).  So, you can use a CASE statement like this:

    ...

    CASES WHERE

    WHEN 1 = 1 THEN 1

    WHEN 1! = 1 THEN 2

    END = eid

    Here, the CASE expression takes the place of a NUMBER.

    However, if I was not sure if 1 = 1 or not, I would write the condition in this way, without a CASE expression:

    WHERE (1 = 1 AND eid = 1)

    OR (1! = 1 AND eid = 2).

  • on the Clause type

    Hi all
    I read some documents oracle and and some examples
    I understand that this model is used to create the table multidimensional and for the prediction of the future.

    but I am not able to write the query using the type clause.
    Please someone help me to understand the clause type base.
    I want everything clause type to start from scratch.

    Please guide me.

    Links: http://rwijk.blogspot.in/2007/10/sql-model-clause-tutorial-part-one.html.
    http://rwijk.blogspot.in/2007/10/SQL-model-clause-tutorial-part-two.html

    There is a post over here in the OTN forum. Please do a search.

    Concerning
    Biju

    Edited by: biju2012 1 Sep 2012 16:02
    (The link for part 2 is provided)

    Published by: biju2012 on Sep 2, 2012 02:45

  • with the use of the clause in the cursor

    is it possible to use with the clause in the cursor declaration.

    See the simple example below.

    It gives an error.



    declare

    cursor t is

    (with Salvation as

    (select * from pepole)


    Select distinct hi.id of salvation where id = 55);


    Start


    null;


    end;

    Remove the outdoor set of parentheses.

    declare
    
    cursor t is
    with hi as
    (select * from emp )
    select distinct sal from hi;
    begin
    null;
    end;
    
  • As for the Clause on Oracle 10 g db

    Hi experts,

    I had little doubt about my simple request

    When I go through the black book of Oracle for db10g article on the clause
    They stated something like this
    SELECT * FROM EMPLOYEES (EMPLOYEE_ID = '1981');
    on the clause simliar to the place where clause.

    SELECT * FROM EMPLOYEES WHERE EMPLOYEE_ID = '1981'.

    When I run this statement .it fine.

    ' using ' ON clause ' instead of ' where clause.

    He didn't accept the clause on, run the command not properly ended sql.

    where I'm not kidding...?


    Thank you & & looks
    ADF7.

    Version
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

    Oracle provides the clause TO specify join conditions in the SELECT statements involving multiple tables. It is independent of data types and column names. As the USING clause, the clause and NATURAL JOIN are mutually exclusive.

    In cases where the tables participating are more two CLAUSES, Oracle uses the first specification of the clause to join the two tables. He uses the second ON the specification of the clause to combine the next table with the result of the join of the first.
    The key word THERE is also used in other contexts, such as in GRANT and INDEX statements.

    Notes:

    After the keyword ON the join condition is written, in general, it can contain predicates connected with Boolean AND, OR, and NOT
    The order of the tables is not relevant
    The use of parentheses are optional in syntax, but the readability of the increases

    Syntax example:

    SELECT

    FROM TABLE_1

    JOIN TABLE_2

    ON (join condition)

    Usage example:

    The SQL query below shows the employee's name and the name of Department of their work:

    SQL > SELECT E.ENAME, D.DNAME

    EMPLOYEE E JOIN DEPT D

    WE (E.DEPTNO = D.DEPTNO)

  • Limited by the Clause order

    Respected by all!

    I found, but fail looking for a limit by the clause order please help me! multiple is, my name in the "name of the substance" column, I want the value of the name research material is stems from the table 'material_reg '.

    1 carton
    2 - cains
    3 - Cain sticker
    4 - caps
    5 joints
    6-other names (means the rest of the others)
    Pls help to solve this type of order by otherwise I have to take a lot of pain on the report

    Concerning

    Hello

    If I understand the question, you can use a DECODE and order them by it.

    For example CHOOSE..., DECODE (col, 'cardboard', 1, 'cains', 2, 'sticker cain', 3, 'selections', 4, 'seals', 5, 6) ord from... ORDER BY DSB

    Good bye
    Marie France

  • The Clause to fetch records in a table object. ?

    Hi all

    I want to know where in Oracle, we can find documents related to the TABLE(OBJECT TYPE) Clause.

    Please find the code below which I use.

    CREATE OR REPLACE TYPE OBJ_EMPNO AS OBJECT (EMPNO NUMBER);
    */*

    CREATE OR REPLACE TYPE TAB_EMPNO AS TABLE OBJ_EMPNO;
    */*

    DECLARE
    TYP_EMPNO TAB_EMPNO: = TAB_EMPNO (OBJ_EMPNO (10), OBJ_EMPNO (20));
    BEGIN
    FOR REC in (SELECT FROM TABLE (TYP_EMPNO)) LOOP *.
    DBMS_OUTPUT. PUT_LINE (TREC. EMPNO);
    END LOOP;
    END;
    */*

    THE ABOVE Code works fine. But my question is where can I find documents related to the Clause TABLE (OBJECT TYPE).

    I searched a lot and found a part in the Oracle documentation, but most of them is not related to my requirement.

    If you'd be grateful if someone provide me with some information here.

    Thank you
    MK.

    in Oracle we can find documents related to the TABLE(OBJECT TYPE) Clause.

    See TABLE().

  • WITH the clause as inline view

    I m using oracle DB 11.2.0.2.0
    I have a question about usage WITH the clause which made a temporary transformation (Materializing) automatically.
    I want the query to operate as a point of view WITH clause online because the transactions table materailizing would kill performance.
    I m able to see the transformation of the temporary table in the explain output plan.
    Have we not all suspicion to stop the transformation of Temp table?

    Here is an example of the sample
    I have the query union multi (2 requests), couple of table is common to all the union queries. the request should not be materialized. It must operate as a point of view common inline.

    WITH ORDERS AS
    (SELECT h.order_number,
    l.line_number,
    l.line_id
    order_headers h, order_lines l)
    SELECT...
    COMMANDS, X, Y
    WHERE THE...
    UNION ALL
    SELECT...
    ORDERS, A, B, C
    WHERE THE...

    Try this...

    WITH ORDERS AS
    (SELECT /*+ inline */ h.order_number,
    l.line_number,
    l.line_id
    from order_headers h, order_lines l)
    ...
    

    To achieve the opposite effect, you can use SELECT / * + materialize * /.

    However, keep in mind that these tips are undocumented, so use them at your own risk. If you think that Oracle is to choose a bad execution plan, you must sign a deal with Oracle Support to see if this is a bug.

    Kind regards
    Bob

Maybe you are looking for