NULL columns in where clause
HelloI use a table column in the where condition.
For example. product_id <>1234 in where clause.
and the query returns results which have id is not equal to 1234.
My question is if the product id for a particular set (row) record is null, then only this record show upward in the result because it is not equal to 1234.
In other words oracle made the comparison "<>null 1234 so retunr the record in the result set?
Please advice. Thanks in advance.
Hello
No Oracle would not return columns with null values if this column is used in where clause with equal/not equal clause (= /! =)
If there use null values in query
where (product_id != 1234 or product_id is null)
Concerning
Anurag
Tags: Database
Similar Questions
-
Outer joins and null in the 'where' clause condition
Hi people,
Please help me on this.
Here's my query.
with x
(select 'a' as a dual union all col1)
Select 'b' as col1 of union double all the
Select 'c' as double col1
),
y as
(
Select 'b' as col2 from dual Union all the
Select 'c' as col2 from dual Union all the
Select would be "as col2 from dual Union all the"
Select 'e' as col2 from dual
)
Select * x y right outer join
on x.col1 = y.col2 and y.col2 is null
Get all the lines of 'COL1' as null. Why like this?
Just add the condition to the WHERE clause for example
WITH x AS (SELECT 'a' AS col1 FROM dual UNION ALL SELECT 'b' AS col1 FROM dual UNION ALL SELECT 'c' AS col1 FROM dual ), y AS ( SELECT 'b' AS col2 FROM dual UNION ALL SELECT 'c' AS col2 FROM dual UNION ALL SELECT 'd' AS col2 FROM dual UNION ALL SELECT 'e' AS col2 FROM dual ) SELECT * FROM x LEFT OUTER JOIN y ON x.col1=y.col2 ----want to add "and y.col2 is null " condition to get value "a" where y.col2 is null
-
where clause to see if they contain the null value
So I've finalized my function but now am having some problems:
the bl field (or the v_bl parameter) has null values in it. When I run the function using the "Select FH ('ACCESS', NULL, 8675309') From dual; I get a NULL return value because it uses the variable to compare with q.bl and you can not have q.bl = null in a Where clause.
The main problem is when the parameters are passed, a line can have the same prob and site, but the bl might be different as null, which would give a different lname.
In where clause I need to have something that will compare the parameter with the bl field. Sometimes it's null sometimes is not, but we need to find the line concerned. I made the "BOLD" in the question police
Here are two possible lines in the data
prob bl site lname
ACCESS Smith 8675309 (null)
54321 8675309 Johnson ACCESS
so in theory, if the function is called with the parameters FH ('ACCESS', NULL, 8675306')
He would return the lname: Smith
and conversely FH ("ACCESS", "54321 ', 8675309") would return Johnson
Here's the function
create or replace
Function FH
(v_prob IN varchar2, v_bl IN varchar2, v_site IN varchar2)
RETURN varchar2
AS
v_lname varchar2 (16);
BEGIN
S.Lname SELECT INTO v_lname
Of
request q
JOIN THE
s response
On
(q.order = s.order)
WHERE
q.BL = v_bl AND - where it is
q.site = v_site AND
q.prob = v_prob AND
s.Lname IS NOT NULL;
RETURN v_lname;
END;
-When I run the FH ('ACCESS', NULL,' 86753) function, it returns an empty value and not the family name
Published by: user11210446 on May 28, 2009 17:03
Published by: user11210446 on May 28, 2009 17:03user11210446 wrote:
If v_bl is Null in the where clause it would even say q.bl = Null which will not work.Matches the NULL value
(1) either you have to say-> q.bl IS NULL
OR
(2) WHERE the NVL (q.bl-99) = NVL (v_bl-99) - this will be true if q.bl and v_bl both are NULL
NULL = NULL evaluates to TRUE, so you use NVLSS@XE > select * from dual where null = null ; no rows selected SS@XE > select * from dual where null is null ; D - X SS@XE > select * from dual where NVL(null,-1) = NVL(null,-1) ; D - X
SS
-
a slightly different similar query where clause
Hi all, I am facing a problem with my request.
I have a query that looks like this
with names like
(select name, lastname, id
FROM table1
where id = 1
and type = "enu".
and asset = 'other '.
and cashid = 2
and $vdate = system_date
)
Select * from names
(< joins with other tables)
the thing is that enu value is past as parameter of the procedure. This is only of value if away from the front end.
further, I have to spend 2 different values now ("cae", "peq")
However, for these two values, of what I need not use the active column in where clause and the cashid will have to be change to cashid in (3.4)
I was thinking a dynamic query construction and function of the value pass, I'll build the query. I am looking for another way to implement these changes with minimal impact on the code. Anyone know how to go around this case?
with these two new values for the query are very similar with the exception of the active column that is more use and cashid will include an IN clause. only a value will be in the procedure, either enu, cae, peq. for enu, the query must be as above, but for the other two active column values are not in the query and cashid must be cashid in (3.4). How to take care of these scenarioswith names as (select name, lastname, id from table1 where id = 1 and ( (type = 'enu' and asset = 'others' and cashid =2) or (type in ('cae','peq') and cashid in (3,4)) ) and vdate = system_date ) select * from names
Max
-
How to set a null column in a where clause clause involving a statement box
In oracle APEX, I a (selection list) element called: P32_STATUS. It contains two values of interest (for this discussion): 'Available' and 'checked '. In my report, I have a column called vc_status that contains two values: "Checkbox" and NULL. In my application I want to use a case statement in my where clause similar to the lines of
where
.
.
.
AND (vc_status = CASE WHEN: P32_STATUS = "Checkbox" THEN : P32_STATUS )
WHEN : P32_STATUS = 'Available' THEN NULL END)
The 'box' filtering works but the filtering to try to vc_status the NULL value does not work. Can someone help me? Thank you!
(P.S. My intuition says that there because I can not put vc_status = NULL, but I must say that vc_status IS NULL... However, I don't know how to do execution IS ZERO inside a CASE statement)
Hello
Your intuition is right...
In Oracle NULL is a bit special:
NULL = NULL is false
NULL <> NULL is false
Thus, instead of the parameter a NULL value in the CASE WHERE there is just set a value on the other side:
NVL (vc_statut, 'Available') =: P32_STATUS
That's all! Simple, clean and functional
-
How to solve where clause matter when it can have a value or be null.
Oracle Database 11 g Enterprise Edition Release 11.2.0.1.0 - 64 bit Production
Hello, I am trying to understand how a query in which I have a where clause clause that can be null or a value, that is to say:
In the query, the gbl variables can have a value or be null, based on the results of a previous cursor. The problem is that if they have the value NULL, I don't get the correct results because where clause will have to be modified to be checked IS NULL instead of = gbl. Is it possible to do it by modifying select it?SELECT supply, duration, count, action FROM MDR WHERE (client = gbl_client OR (group = gbl_group AND section = gbl_section )) AND (prov_code = gbl_prov_code );
Hello
Because these columns are all strings, the CONCAT method will work fine:
SELECT * FROM mdr WHERE '?' || grp = '?' || glb_grp -- GROUP is not a good column name AND '?' || section = '?' || glb_section AND '?' || prov_code = '?' || prov_code ;
I think that the code is a little nicer with the '?' before the actual data. No matter whether it is before or after, just be consistent.
Published by: Frank Kulash, January 25, 2011 15:59
-
Version of DB: database Oracle 11 g Enterprise Edition Release 11.2.0.3.0 - 64 bit Production
I have a table my_table as below:
create table my_table
(
my_code varchar2 (6).
my_id varchar2 (24).
forced pk_1 primary key (my_code, my_id)
);
Primary_key here's a composite key that contains columns 1 (my_code) and 2 (my_id).
Is there that a difference in the way below queries is executed in terms of performance (use of indexing in the extraction).(a) select * from my_table where my_code = '123' and my_id = "456";
(b) select * from my_table where my_id = '456' and my_code = '123';
The understanding I have the order of the column in the where clause should be identical to the sequence in
What primary key draws for indexing to be used by oracle in oracle other DML queries ignores indexing
However when I used explain plain both show the same query cost with single scan with index rowid.
so I don't know if I'm wrong in the concept that I have. Kindly help.Thanks in advance,
GerardYour question is answered in the Performance Tuning Guide
14.1.4 choosing composite indexes
A composite index contains several key columns. Composite indexes can provide additional benefits compared to the index to single column:
- Improved selectivity
Sometimes the two or more columns or expressions, each with a low selectivity can be combined to form a composite with a high selectivity.
- Reduced IO
If all columns selected by a query are a composite index, then Oracle may return these values in the index without access to the table.
A SQL statement can use a path on a composite index if the statement contains constructions that use a main part of the index.
Note:
This is no longer the case with the skip index scans. See "Index Skip Scans".
A main part of an index is a set of one or more columns that have been specified first and consecutively in the list of columns in the
CREATE
INDEX
statement that created the index. - Improved selectivity
-
Comparison of nulls in where clause
Hi team,
I want to select the data in the table based on some condition.
The problem is the data that I have to look in where clause is null or has a certain value.
The data are unknown so I can not use "is null" because if the data is not null then I have to use the '=' operator.
Please suggest a way to handle this situation, example below make the situation clearer for you.
I want data retirve that matches the current value of variable value1, value2, value3.
Name of the table:-DEMO(A,B,C)
A, B AND C
1 2 null
3 5 null
6 7 8
Select A, B, C of demo where A = 1 and B = value2 and c = value3;
Value1, value2, value3 are the variables that have some that can also be null.
If value1 or value2 value 3 having null that the above query does not work because I have to use to compare null values is null.
Please suggest me the query from right or procedure to deal with the current scenario.Hello
DECODE treats NULL as a value, so you can do something like
SELECT a, b, c FROM demo WHERE DECODE (a, value1, 'OK') = 'OK' AND DECODE (b, value2, 'OK') = 'OK' AND DECODE (C, value3, 'OK') = 'OK' ;
-
I have a question (which I use for Apex, but I think it's besides the point) that has a where clause clause.
When: P24 is not specified, I want that she don't know where clause altogether, if flag is null or not.Select * from table1 where Flag = :P24_Flag
What is the most elegant way to do it?Select * from table1 where (Flag = :P24_Flag OR :P24_Flag is null)
?
-
'create columns with a where clause' in MDB
Hi all
I have a question on the OBI EE meta data layer.
We have OBIEE sitting on a with a star schema data warehouse.
Our fact table contains the following fields...
EmployeeID
CompanyID
ID of the measure
The measure name
MEASURE
That's what we have in the physical layer, layer MDB and the presentation layer, but I want to be able to "create columns with a where clause.
So my table of facts in the presentation layer would look like this
Quantity sold
Unit cost
Amount of the company
I thought I could just create a logical with column
Quantity = measurement
where as name = "quantity".
But I can't find any to do so.
Any ideas?
Thank youHello
I think that what you want to achieve must be done in the physical layer and not the business layer.
Instead of using your physical table directly from the DB, you must create a physical table based on an SQL statement.
GO to the physical layer you / create the new object table in Table type choose "Select" and then you write your select statement as you want.
Once this is done to create your physical joins and import your table into your business layer and create your complex joins
This should do the trick.
It may be usefulConcerning
-
Details on the order of columns in a Where Clause
Thank youHi All My both Quarries are giving same record count . so can i say that the order of the columns("msib.inventory_item_id=pol.item_id" AND" pol.item_id=msib.inventory_item_id ") in the where clause doesn't effect the query result in any situation {code } select count(*) from po_headers_all poh ,po_vendors pv ,po_lines_all pol ,po_line_locations_all pll ,mtl_system_items_b msib where poh.vendor_id = pv.vendor_id and poh.po_header_id = pol.po_header_id and pol.po_line_id = pll.po_line_id and pll.ship_to_organization_id = msib.organization_id ----------------1 and msib.inventory_item_id=pol.item_id --------------------------2 and poh.type_lookup_code = 'STANDARD' and pv.vendor_name = 'Star Gate Ltd' group by 1 select count(*) from po_headers_all poh ,po_vendors pv ,po_lines_all pol ,po_line_locations_all pll ,mtl_system_items_b msib where poh.vendor_id = pv.vendor_id and poh.po_header_id = pol.po_header_id and pol.po_line_id = pll.po_line_id and pol.item_id = msib.inventory_item_id ----------------------------------2 and pll.ship_to_organization_id = msib.organization_id -----------------------------1 and poh.type_lookup_code = 'STANDARD' and pv.vendor_name = 'Star Gate Ltd'
Published by: vijay539 on November 20, 2009 09:17
Published by: vijay539 on November 20, 2009 09:18
Published by: vijay539 on November 20, 2009 09:19
Published by: vijay539 on November 20, 2009 09:19Hello
Right; the order in which the columns appear in the SELECT clause has nothing to do with the lines that are in the result set.
In fact, unless you say SELECT DISTINCT , I don't think there's anything (except to trigger an error) you can do in the SELECT clause, which would change the lines are selected.
Published by: Frank Kulash, November 20, 2009 12:45
Sorry, I misread the question. You may have about the order of the conditions in the WHERE clause, not the SELECT clause.
The answer in short is the same:
Right.Unless you mix ANDS and ORs (no one should ever do and that you are not), the order of the conditions will make no difference in the results.
-
SQL Loader - ignore the lines with "rejected - all null columns."
Hello
Please see the attached log file. Also joined the table creation script, data file and the bad and throw the files after execution.
Sqlldr customer in the version of Windows-
SQL * Loader: release 11.2.0.1.0 - Production
The CTL file has two clauses INTO TABLE due to the nature of the data. The data presented are a subset of data in the real world file. We are only interested in the lines with the word "Index" in the first column.
The problem we need to do face is, according to paragraph INTO TABLE appears first in the corresponding CTL lines file to the WHEN CLAUSE it would insert and the rest get discarded.
1. statement of Create table : create table dummy_load (varchar2 (30) name, number, date of effdate);
2. data file to simulate this issue contains the lines below 10. Save this as name.dat. The intention is to load all of the rows in a CTL file. The actual file would have additional lines before and after these lines that can be discarded.
H15T1Y Index | 2. 19/01/2016 |
H15T2Y Index | 2. 19/01/2016 |
H15T3Y Index | 2. 19/01/2016 |
H15T5Y Index | 2. 19/01/2016 |
H15T7Y Index | 2. 19/01/2016 |
H15T10Y Index | 2. 19/01/2016 |
CPDR9AAC Index | 2. 15/01/2016 |
MOODCAVG Index | 2. 15/01/2016 |
H15TXXX Index | 2. 15/01/2016 |
H15TXXX Index | 2. 15/01/2016 |
3. the CTL file - name.ctl
DOWNLOAD THE DATA
ADD
IN THE TABLE dummy_load
WHEN (09:13) = "Index".
TRAILING NULLCOLS
(
COMPLETED name BY ' | ',.
rate TERMINATED BY ' | '.
COMPLETED effdate BY ' | '. ' TO_DATE (: effdate, "MM/DD/YYYY").
)
IN THE TABLE dummy_load
WHEN (08:12) = "Index".
TRAILING NULLCOLS
(
COMPLETED name BY ' | ',.
rate TERMINATED BY ' | '.
COMPLETED effdate BY ' | '. ' TO_DATE (: effdate, "MM/DD/YYYY").
)
invoke SQL loader in a file-> beats
C:\Oracle\product\11.2.0\client\bin\sqlldr USERID = myid/[email protected] CONTROL=C:\temp\t\name.ctl BAD=C:\temp\t\name_bad.dat LOG=C:\temp\t\name_log.dat DISCARD=C:\temp\t\name_disc.dat DATA=C:\temp\t\name.dat
Once this is run, the following text appears in the log file (excerpt):
Table DUMMY_LOAD, charged when 09:13 = 0X496e646578 ('Index' character)
Insert the option in effect for this table: APPEND
TRAILING NULLCOLS option in effect
Column Position Len term Encl. Datatype name
------------------------------ ---------- ----- ---- ---- ---------------------
NAME FIRST * | CHARACTER
RATE NEXT * | CHARACTER
EFFDATE NEXT * | CHARACTER
SQL string for the column: ' TO_DATE (: effdate, "MM/DD/YYYY").
Table DUMMY_LOAD, charged when 08:12 = 0X496e646578 ('Index' character)
Insert the option in effect for this table: APPEND
TRAILING NULLCOLS option in effect
Column Position Len term Encl. Datatype name
------------------------------ ---------- ----- ---- ---- ---------------------
NAME NEXT * | CHARACTER
RATE NEXT * | CHARACTER
EFFDATE NEXT * | CHARACTER
SQL string for the column: ' TO_DATE (: effdate, "MM/DD/YYYY").
Record 1: Ignored - all null columns.
Sheet 2: Cast - all null columns.
Record 3: Ignored - all null columns.
Record 4: Ignored - all null columns.
Sheet 5: Cast - all null columns.
Sheet 7: Discarded - failed all WHEN clauses.
Sheet 8: Discarded - failed all WHEN clauses.
File 9: Discarded - failed all WHEN clauses.
Case 10: Discarded - failed all WHEN clauses.
Table DUMMY_LOAD:
1 row loaded successfully.
0 rows not loaded due to data errors.
9 lines not loading because all WHEN clauses were failed.
0 rows not populated because all fields are null.
Table DUMMY_LOAD:
0 rows successfully loaded.
0 rows not loaded due to data errors.
5 rows not loading because all WHEN clauses were failed.
5 rows not populated because all fields are null.
The bad file is empty. The discard file has the following
H15T1Y Index | 2. 19/01/2016 |
H15T2Y Index | 2. 19/01/2016 |
H15T3Y Index | 2. 19/01/2016 |
H15T5Y Index | 2. 19/01/2016 |
H15T7Y Index | 2. 19/01/2016 |
CPDR9AAC Index | 2. 15/01/2016 |
MOODCAVG Index | 2. 15/01/2016 |
H15TXXX Index | 2. 15/01/2016 |
H15TXXX Index | 2. 15/01/2016 |
Based on the understanding of the instructions in the CTL file, ideally the first 6 rows will have been inserted into the table. Instead the table comes from the line 6' th.
NAME RATE EFFDATE H15T10Y Index 2 January 19, 2016 If the INTO TABLE clauses were put in the CTL file, then the first 5 rows are inserted and the rest are in the discard file. The line 6' th would have a ""rejected - all columns null. "in the log file. "
Could someone please take a look and advise? My apologies that the files cannot be attached.
Unless you tell it otherwise, SQL * Loader assumes that each later in the table and what clause after the first back in the position where the previous left off. If you want to start at the beginning of the line every time, then you need to reset the position using position (1) with the first column, as shown below. Position on the first using is optional.
DOWNLOAD THE DATA
ADD
IN THE TABLE dummy_load
WHEN (09:13) = "Index".
TRAILING NULLCOLS
(
name POSITION (1) TERMINATED BY ' | '.
rate TERMINATED BY ' | '.
COMPLETED effdate BY ' | '. ' TO_DATE (: effdate, "MM/DD/YYYY").
)
IN THE TABLE dummy_load
WHEN (08:12) = "Index".
TRAILING NULLCOLS
(
name POSITION (1) TERMINATED BY ' | '.
rate TERMINATED BY ' | '.
COMPLETED effdate BY ' | '. ' TO_DATE (: effdate, "MM/DD/YYYY").
)
-
Cannot run a «BUSINESS...» WHEN ' with a date in a WHERE CLAUSE condition
Hello
I need to check for a condition and date according to the date, he would check a set of host names or the other game... so I thought I could write something like this in the WHERE clause:
AND HOST_NAME IN (
CASE
WHEN TO_DATE (: StopDate, 'MON-DD-YYYY') > = TO_DATE ('22 - DEC - 2015 "," DD-MON-YYYY ') THEN
('SERVERNAMEA', 'SERVERNAMEB', 'SERVERNAMEC') ON THE OTHER
("SERVERNAME1", "NAMESERVER2", "SERVERNAME3")
END
)
I get the following:
ORA-00907: lack of right parenthesis
00907 00000 - "lack the right parenthesis.
But there is no missing parentheses!
If I take the case... when... end, and run the host_name in ('SERVERNAMEA', 'SERVERNAMEB', 'SERVERNAMEC') (separately, they run fine)...
I also tried:
AND
( CASE
WHEN TO_DATE (: StopDate, 'MON-DD-YYYY') > = TO_DATE ('22 - DEC - 2015 "," DD-MON-YYYY ') THEN
HOST_NAME IN ('SERVERNAMEA', 'SERVERNAMEB', 'SERVERNAMEC') ELSE
HOST_NAME IN ('SERVERNAME1","NAMESERVER2","SERVERNAME3")
END
)
the error I get is:
ORA-00905: lack of keyword
00905 00000 - 'lack the key word'
What keyword miss me?
Post edited by: c75d2e42-06a0-4eb1-a576-5652edcbfbe8
Hello
c75d2e42-06a0-4eb1-A576-5652edcbfbe8 wrote:
It was a typo when transferred to the Oracle forum... the version of Oracle is: PL/SQL version 10.2.0.3.0 (10 G)
I also used IF the statement and that has not worked (in error "missing parenthesis") which I'm sure is a matter of "syntax"... I did not know that the CASE statement returns the value single only, so it's probably the problem. Is it possible to re - write this?
...
IF only works in PL/SQL. It does not in SQL, even if that SQL is embedded in PL/SQL.
There are many ways to re - write the condition. And here's one:
AND ((host_name IN ('SERVERNAMEA', 'SERVERNAMEB', 'SERVERNAMEC')
AND TO_DATE (: StopDate, "MON-DD-YYYY") > = TO_DATE ('22-DEC-2015', "MON-DD-YYYY")
)
OR (host_name IN ('servername1","Nameserver2","SERVERNAME3")
AND TO_DATE (: StopDate, "MON-DD-YYYY")< to_date="" ('dec-22-2015', =""> >
)
)
If: StopDate can be NULL, it must be a bit more complicated.
You can also use nested, such as CASE expressions
AND THE CASE
WHEN TO_DATE (: StopDate, "MON-DD-YYYY") > = TO_DATE ('22-DEC-2015', "MON-DD-YYYY")
WHILE CASE
WHEN host_name IN ('SERVERNAMEA', 'SERVERNAMEB', 'SERVERNAMEC')
AND THEN 'OK '.
END
OTHER CASES
WHEN host_name IN ('servername1","Nameserver2","SERVERNAME3")
AND THEN 'OK '.
END
END = 'OK '.
I wonder if this in your application is the best way, however. If SERVERNAMEA was put into service on December 22, maybe that that fact should be recorded in a table. If you have a table with 1 row per server, you can consider adding 2 columns DATE to show when the server was first and last used. Then, rather than use a WHERE clause to test servers appropriate, you could do an inner join.
-
several instructions box in where clause
Hello
I'm trying to create report filters using substitution variables in a case statement in a where clause clause. I have several instructions box running on the same column. I don't really know how to write it. Here's what I have so far but I know I'm going in the wrong direction.
where
i.compute_zone =
case
When: P14_zone is NOT NULL
then: P14_zone
of other i.compute_zone
end
AND
i.compute_zone =
case
When: P14_zone_2 is NOT NULL
then: P14_zone_2
other: P14_zone
end
AND
i.compute_zone =
case
When: P14_zone_3 is NOT NULL
then: P14_zone_3
of other i.compute_zone
end
AND
i.compute_zone =
case
When: P14_zone_4 is NOT NULL
then: P14_zone_4
of other i.compute_zone
end
any suggestions?
Thank you
MICAH
Hi, Micah,
User12611868-Oracle wrote:
Hello
I'm trying to create report filters using substitution variables in a case statement in a where clause clause. I have several instructions box running on the same column. I don't really know how to write it. Here's what I have so far but I know I'm going in the wrong direction.
where
i.compute_zone =
case
When: P14_zone is NOT NULL
then: P14_zone
of other i.compute_zone
end
AND
i.compute_zone =
case
When: P14_zone_2 is NOT NULL
then: P14_zone_2
other: P14_zone
end
AND
i.compute_zone =
case
When: P14_zone_3 is NOT NULL
then: P14_zone_3
of other i.compute_zone
end
AND
i.compute_zone =
case
When: P14_zone_4 is NOT NULL
then: P14_zone_4
of other i.compute_zone
end
any suggestions?
Thank you
MICAH
How get the desired results of your data depends on the desired results and your data. What do you do? (I can't tell just by looking at the aat code that do not do). After CREATE TABLE and INSERT statements for some sample data and a couple of sets of parameters (variables such as p14_zone) and the exact results that your choices in each set of parameters, given the same sample data.
Check out the Forum FAQ: Re: 2. How can I ask a question on the forums?
CASE expressions are generally not useful in a WHERE clause. CASE expressions are a convenient way to IF-THEN-ELSE logic of the places where you can't do anything other than (the SELECT clause), but WHERE the clauses allow IF-THEN-ELSE logic in any case
Maybe you want something like
WHERE MERGE (: p14_zone,: p14_zone_2,: p14_zone_3,: p14_zone_4) IS NULL
OR IN i.compute_zone (: p14_zone,: p14_zone_2,: p14_zone_3,: p14_zone_4)
It returns TRUE if all 4 parameters are set to NULL. If 1 or more of them are not NULL, then it will return TRUE if i.compute_zone is equal to one of them.
-
Hello
I need to use decode condition in where clause in such a way that if the respective column is null then consider the corresponding column
for example
Fee_date Fee_refund_date 10 OCTOBER 05 12 NOVEMBER 05 11 JANUARY 06 16 FEBRUARY 06 I have a request in place as below where p_fee_flag will be passed as either FEES or set to null, I check another condition as if p_fee_flag is null then fee_date must be set to null when comparing fee_refund_date between TRUNC (BKT. ACT_START_DATE) AND TRUNC (BKT. ACT_END_DATE
SELECT 1
BUCKET BKT
WHERE DECODE (P_FEE_FLAG, 'FEES', TRUNC(FS.) FEE_DATE), TRUNC (FS. FEE_REFUND_DATE))
BETWEEN TRUNC (BKT. ACT_START_DATE) AND TRUNC (BKT. ACT_END_DATE)
944524 wrote:
Hello Alberto,.
Thank you that's what I ask but is it possible to verify the condition even using decode
Yes, it is possible, but why?
Just replace the query in this way:
select * from fee_table f where exists(select 1 from bucket b where decode(:p_fee_flag, 'FEE', f.fee_date, f.fee_refund_date) between b.act_start_date and b.act_end_date) and decode(:p_fee_flag, 'FEE', null, f.fee_date) is null;
Kind regards.
Alberto
Maybe you are looking for
-
Why am I Chinese - looking text on my web pages?
Some web pages, I opened have Chinese - text search in places. It seems to be where advertisements maybe (after looking at the page in Safari), but sometimes it's the entire page.
-
LaserJet Pro M177FW MFP: Laserjet Pro M177FW MFP control button does not work
I've seen other messages on how to reset the printer to try to get the touch screen to work, but none of this does not work for me. It allows to work at the time of purchase, but after all these updates, it is not. Is there a way to send the copy com
-
Distributed replication of file system between servers with different performances
If the published file system replication is set between servers with different performances. What will happen with the fastest server performance? The performance will shrink to match the performance of the server in the slower string?
-
I need to clear all of my media files on my external drive
How can I select all my media files to my external hard drive? I don't want to make another backup. Where are these files in my system Vista Home Basic 32-bit?
-
BlackBerry smartphones can not attach more than 3 mg files to messages
I thought that the maximum size of 6 MB attachments. When I try to attach a video file (for e-mail or BBM message) is 5meg it says file too big and won't attach. No idea if I need to update all the options, or am I wrong on the max of 6 MB? Thank