Select * from table where rownum 5; no rows returned? why is it so?
select from table where rownum > 5;*
no rows returned. why is it so?
can anyone explain me?
Hi,
rownum is pseudo column, and it is based on the sort order.
For ex, if you want to get the first 5 employees who get the least salary, you use,
select ename,sal from
(select ename, sal
from emp
order by sal )
where rownum<=5
ENAME SAL
SMITH 800
ALLEN1 890
JAMES 951
TURNER 998
ADAMS 1100Suppose, if you want to use highest salary, you change the order by and not the rownum. So, it becomes,
select ename,sal from
(select ename, sal
from emp
order by sal desc)
where rownum<=5
ENAME SAL
KING1 5000
FORD 3000
SCOTT 3000
JONES 2975
BLAKE 2850 So, its not the rownum you would want to change, but the order by.
-Arun
Similar Messages
-
Can I simulate SELECT * FROM TABLE WHERE ROW IN (1111,2222) using SQLJ
I have a fct like
public void fct(String inStr) {
String str = "SELECT * FROM TABLE WHERE ROW IN" + inStr;
// then I xecute the query using JDBC connection
But I want to do the same thisn using SQLJ like:
public void fct(String inStr) {
#sql [nctx] iter = { SELECT * FROM TABLE WHERE ROW IN :inStr}
When I run the second version and give a parameter like "(1111,2222)" it gives
ORA-01722: invalid number error.
Is there a way to give parameters to in clauses of SQLJ statements.
Thanks in regard.This is a SQLJ FAQ. You can find the FAQ at:
http://technet.oracle.com/tech/java/sqlj_jdbc/htdocs/faq.html
Your question is addressed in the following section:
http://technet.oracle.com/tech/java/sqlj_jdbc/htdocs/faq.html#variablesizevaluelist
Note that that section has a typo. The lines:
? // populate mynumbers
#sql { SELECT * FROM tab WHERE col in (:(a[0]),:(a[1]),?};
should read:
... // populate mynumbers
#sql { SELECT * FROM tab WHERE col in (:(a[0]),:(a[1]),...};
By the way, with the next release SQLJ will support pasting in of dynamic SQL fragments. Then you'll be able to do pretty much what you are trying to accomplish here (albeit with slightly different syntax). Until then you'd have to use the workarounds from the FAQ. -
How do I do SELECT * FROM TABLE WHERE KEY IN ({list})?
The title says it all really.
Is there a reasonable performant way to perform the query
SELECT * FROM TABLE WHERE KEY IN ({list})where {list} is String []?
I am currently creating a PreparedStatement with a for loop like this StringBuffer sb = new StringBuffer ("SELECT * FROM TABLE WHERE ID IN (");
for (int ii=0;ii<keys.length;ii++) {
sb.append (keys [ii]);
if (ii != keys.length-1) sb.append (",");
sb.append (")");but this means that the prepared statement is created each time I call my method and so I'm not sure that the optimizer will find it easy to cope with. Is there a construction that I'm missing along the lines of SELECT * FROM TABLE WHERE KEY = ? where I can create the PreparedStatement once and just call setObject or something on it when the values in {list} change?but this means that the prepared statement is created
each time I call my method and so I'm not sure that
the optimizer will find it easy to cope with.You are right, the optimizer won't find that easy to deal with (presuming that is even relevant for your driver/database.) But most optimizers won't do anything with statements that change and that is what you are doing.
You could create several prepared statements which have a common number of bind variables. For example 10 statements with from 1 to 10 bind values. This will work if most of the queries use those. -
How to achieve that "SELECT * FROM table WHERE age BETWEEN 18 AND 23 AND n"
How to achieve the SQL like that "SELECT * FROM table WHERE age BETWEEN 18 AND 23 AND name = 'Will' " with BDB C-API
The primary key in the primary database is 'age' ,and the secondary key in the secondary index is 'name' ,in a lot of examples ,there are all simple , but how to do that complex one.thx~but this means that the prepared statement is created
each time I call my method and so I'm not sure that
the optimizer will find it easy to cope with.You are right, the optimizer won't find that easy to deal with (presuming that is even relevant for your driver/database.) But most optimizers won't do anything with statements that change and that is what you are doing.
You could create several prepared statements which have a common number of bind variables. For example 10 statements with from 1 to 10 bind values. This will work if most of the queries use those. -
Reason behind this query ,SELECT * FROM table WHERE 1 0
HEllo,
I would like to know the reason behind using this query ,
SELECT * FROM <table> WHERE 1 < 0
before executing the actual SQL query.
Is there any special reason or the JDBC receiver side is configured like that.
Is there any option to overcome this process like, can we remove this option or stop using this.
Why the JDBC adapter basically sending this query on the DB?
Thanks,
Soorya,Hi,
if you run this query, you wont be able to see any records of the table.
SELECT * FROM <table> WHERE 1 < 0
if you run this query you will see all records
SELECT * FROM <table> WHERE 0 < 1
same with SELECT * FROM <table> WHERE 1=1
So you can check this out that whats happening in your code before executing actual query. just try to co-relate.
regards
Aashish Sinha
PS : reward points if helpful -
Newbie Select * FROM table where IF Numeric else something else
I have a text on a web page. If one can enter an EMPLOYID ( like 55 ) or
lastname like 'SMITH'.
I tried using INSTR and Substr but no avail.
Select *
from Atable
WHERE
IF SUBSTR(myfield,1,1)="0" OR
IF SUBSTR(myfield,1,1)="1" OR
etc.
EMPID=to_number(myfield)
ELSE
Upper(Lastname) like Upper(myfield)
Suggestions?
TIA
SteveYes myfield could be either "55" OR it could be "SMITH"
Otherwise I would have to have 2 textboxes on the web page.
One for EmployeeID and one for lastname.
Thanks.
Steve -
SELECT * FROM table WHERE id NOT IN? Help with statement.
Hi,
Two tables. Orders (orderID = PK) and Paid Orders (orderID =
FK)
I want to display a recordset of orders from the Orders table
where the
order ID doesn't appear in the Paid Orders table.
I have tried something like this:
SELECT *
FROM dbo.tblOrders
WHERE orderID NOT IN ( SELECT TOP 100 PERCENT
tblPaidOrders.orderID FROM
dbo.tblPaidOrders )
...no joy with that though. Would appreciate some guidance.
Thank you.
Regards
Nath.Hi Nancy,
Before I begin that, can I ask if there is an issue with the
OR?
I need it to be:
(orderID IN (SELECT qryPaidOrders.orderID FROM qryPaidOrders)
ORDER BY
orderdate ASC) AND ((customerid = MMColParam1) OR (vanopID =
MMColParam2))
MMColParam1 is exactly the same as MMColParam but, for some
reason
unbeknowns to me, DW8.0.2 won't allow me to use it twice.
That's neither
here nor there though, as creating a 2nd variable
(MMColParam2) solves that
particular issue.
Do I need additional ( ) anywhere considering it is an OR
though?
Thanks.
nath.
"Nancy *Adobe Community Expert*" <[email protected]>
wrote in message
news:[email protected]...
>I would think so .. now that you have the core statement
working .. try
>adding the other portions. Put the main statement in ( )
and add the
>others. Like this:
>
> SELECT *
> FROM dbo.qryOrders
> WHERE (orderID IN (SELECT qryPaidOrders.orderID FROM
qryPaidOrders)
> ORDER BY orderdate ASC) AND (customerid = MMColParam1)
AND (vanopID =
> MMColParam2)
>
> See what that gives you and fiddle with those till you
get what you want.
>
>
> --
> Nancy Gill
> Adobe Community Expert
> BLOG:
http://www.dmxwishes.com/blog.asp
> Author: Dreamweaver 8 e-book for the DMX Zone
> Co-Author: Dreamweaver MX: Instant Troubleshooter
(August, 2003)
> Technical Editor: DMX 2004: The Complete Reference, DMX
2004: A
> Beginner's
> Guide, Mastering Macromedia Contribute
> Technical Reviewer: Dynamic Dreamweaver MX/DMX: Advanced
PHP Web
> Development
>
>
>
>
> "tradmusic.com" <[email protected]> wrote
in message
> news:[email protected]...
>> Hi,
>>
>> After a bit of twiddling, I changed the statement to
this:
>>
>> SELECT *
>> FROM dbo.qryOrders
>> WHERE orderID IN (SELECT qryPaidOrders.orderID FROM
qryPaidOrders)
>> ORDER BY orderdate ASC
>>
>> ...and it displays only those records who appear in
the Paid Orders
>> table. If I change this to NOT IN, it displays only
the orders in the
>> Orders table.
>>
>> Ideal, but I need to apply the customerID and
vanopID variables....is
>> that possible within this one statement?
>>
>> Really appreciate the help,
>> Regards
>> Nath.
>>
>> "Nancy *Adobe Community Expert*"
<[email protected]> wrote in message
>> news:[email protected]...
>>> You've added to it since the first post. Take
out the customerID and
>>> vanopID parts and try focusing on just the
orderID part. Get that
>>> working first.
>>>
>>> I would try seeing if you can select those
orderID's that are IN the
>>> subquery first .. that would see whether or not
the problem is the NOT
>>> .. which should work .. but let's see first
whether the culprit is the
>>> query structure or not. See if you can select
the orderID's that are in
>>> the paid orders table from the main query.
>>>
>>>
>>> --
>>> Nancy Gill
>>> Adobe Community Expert
>>> BLOG:
http://www.dmxwishes.com/blog.asp
>>> Author: Dreamweaver 8 e-book for the DMX Zone
>>> Co-Author: Dreamweaver MX: Instant
Troubleshooter (August, 2003)
>>> Technical Editor: DMX 2004: The Complete
Reference, DMX 2004: A
>>> Beginner's
>>> Guide, Mastering Macromedia Contribute
>>> Technical Reviewer: Dynamic Dreamweaver MX/DMX:
Advanced PHP Web
>>> Development
>>>
>>>
>>> "tradmusic.com"
<[email protected]> wrote in message
>>> news:[email protected]...
>>>> Hi Nancy,
>>>>
>>>> Have just tried that, but it is still
displaying records whose orderID
>>>> is also in a record in the Paid Orders
table?
>>>>
>>>> I've got:
>>>>
>>>> SELECT *
>>>> FROM dbo.qryOrders
>>>> WHERE customerID = MMColParam OR vanopID =
MMColParam1 AND orderID NOT
>>>> IN (SELECT qryPaidOrders.orderID FROM
qryPaidOrders)
>>>> ORDER BY orderdate ASC
>>>>
>>>> Hope you can help.
>>>> Thanks. :o)
>>>> Nath.
>>>>
>>>>
>>>> "Nancy *Adobe Community Expert*"
<[email protected]> wrote in message
>>>> news:[email protected]...
>>>>> Why couldn't your inner query just be
SELECT orderID from
>>>>> dbo.tblPaidOrders? Wouldn't the top 100%
be all of them?
>>>>>
>>>>>
>>>>> --
>>>>> Nancy Gill
>>>>> Adobe Community Expert
>>>>> BLOG:
http://www.dmxwishes.com/blog.asp
>>>>> Author: Dreamweaver 8 e-book for the DMX
Zone
>>>>> Co-Author: Dreamweaver MX: Instant
Troubleshooter (August, 2003)
>>>>> Technical Editor: DMX 2004: The Complete
Reference, DMX 2004: A
>>>>> Beginner's
>>>>> Guide, Mastering Macromedia Contribute
>>>>> Technical Reviewer: Dynamic Dreamweaver
MX/DMX: Advanced PHP Web
>>>>> Development
>>>>>
>>>>>
>>>>> "tradmusic.com"
<[email protected]> wrote in message
>>>>>
news:[email protected]...
>>>>>> Hi,
>>>>>>
>>>>>> Two tables. Orders (orderID = PK)
and Paid Orders (orderID = FK)
>>>>>> I want to display a recordset of
orders from the Orders table where
>>>>>> the order ID doesn't appear in the
Paid Orders table.
>>>>>>
>>>>>> I have tried something like this:
>>>>>>
>>>>>> SELECT *
>>>>>> FROM dbo.tblOrders
>>>>>> WHERE orderID NOT IN ( SELECT TOP
100 PERCENT tblPaidOrders.orderID
>>>>>> FROM dbo.tblPaidOrders )
>>>>>>
>>>>>> ...no joy with that though. Would
appreciate some guidance. Thank
>>>>>> you.
>>>>>>
>>>>>> Regards
>>>>>> Nath.
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
> -
Select from table where last character in string is numeric
Hello,
I have a table STREETS with a field called ADDRESS. I would like to select all records from streets where the last character in Address is a number.
Select ADDRESS from STREETS where regexp_like(substr(address, ?,?,), '[0-9]');
--? means that I don't know what to put in here!
I'm not sure if substr is the best approach for this, since i only want the last character and the records are of varying lengths.
Thanks!Hi,
If you want to use regular expressions:
WHERE REGEXP_LIKE ( address
, '[0-9]$'
)You can get the same results, probably more efficiently, without regular expressions:
WHERE INSTR ( '0123456789'
, SUBSTR (address, -1)
) > 0 -
Select * from TABLE where Filed like pa_input.
Hello,
the following works fine
select * from ZTABLE INTO wa_myarea WHERE myfield LIKE 'a%'.
Now I don't want to hard code the selection criteria for myfield, but let the user select one, so I did:
parameters pa_input type mytype.
select * from ZTABLE INTO wa_myarea WHERE myfield LIKE pa_input.
If the user enters now for example a% everything works again fine. But I assume that a user rather would enter a* for a wild card search and that doesn't work. Do I have to manually replace all * in my variable with % before I run the select statement? I hope not... What would be the best way?
Thanks.Moderator message - Please do not ask basic questions - thread locked
Rob -
Select from table where field contains the first 3 character
The value of the field contains leading zeros like 0000000123, 0000001123, 0000011123.
Now we need to check the table for entries that contains the first three characters excluding the zeros.
If we are looking for '123' then we should be retrieving 0000000123 and not 0000001123 or 0000011123.
Is there a way to get that value in SQL statement with only the exact result?
Thanks.P156550 wrote:>
> We've tried to use LIKE in our SQL statements and filtered it but there are a bunch of data and we want to get the exact row to improve the performance.
Hello Adjhan,
Yes, you need not use LIKE.
You can use CONVERSION EXIT. I see that the length of your data is CHAR10.
So try to use the code i have suggested & revert back if any doubts.
@Soumyaprakash:
If read the original post carefully, the OP has said:
If we are looking for '123' then we should be retrieving 0000000123 and not 0000001123 or 0000011123.
So LIKE does not come into the picture.
Good Luck,
Suhas -
Post Author: JuneCruz
CA Forum: Data Connectivity and SQL
These is my table with 3 fields NFstCol, NsndCol, and NtrdCol
NFstCol NSndCol NTrdCol -
1 One 12 One 13 One 14 Two 15 Two 16 Two 17 One 28 One 29 One 210 One 311 One 312 One 316 Two 217 Two 218 Two 219 Four NULL20 Four NULL21 Four NULL
Now I want to display the records all records that have the maximum ntrdcol group by nsndcolso the output should be. NfstCol NtrdColOne 10 3 11 3 12 3
Two 16 2 17 2 18 2
Four 19 null 20 null 21 null
Can this be done without using view and command as source for the database.thanks.Post Author: JuneCruz
CA Forum: Data Connectivity and SQL
Hi Jagan, all;
Thanks for the reply. It works. Now Im grouping again my reports based on status.
my records would be.
FstCol NsndCol Status
1 One Inactive 2 One Active 3 One Active
My first group would be Status , then by NsndCol
However my report shows Active FstCol NsndCol 3 One Inactive 1 One
but I want only record number 3 having 3 as the max id for One, I just want to ignore about the Status but I need to group my records based on status also
FstCol NsndCol 3 One
Thanks, -
Select data from table where field is initial
I have table that has 10 million records.
I want to select data from this table where certain date field is blank.
*SELECT * FROM table*
INTO TABLE internal table
WHERE PSTNG_DATE = BLANK.
Does anybody know how to select data from data base table when certain field is blank.
I cont select all data once and delete which i dont want, the table is big, it will blow up app server.
thanks in advance,
Sachin
Moderator: Pls do not lock the posting instead provide me the link, its disrespecting.Respect the forum rules and common sense, and you will be respected.
"how to select data from a database table when the field is blank" is very basic, and basic questions will be locked, because they have been asked many times and you can find the answer yourself with a little effort. There is nothing disrespectful about it.
Thread locked.
Thomas -
CREATE TABLE A AS SELECT * FROM B WHERE 1 = 2'-Queries
Guys,
I request your guidance in the effect of Create table statement below:
CREATE TABLE A AS SELECT * FROM B WHERE 1 = 2';
Question:
1)What would be the PCTFREE value for table A-Would it inherit PCTFREE from table B?
2) Will table A be created with LOGGING or NO LOGGING?-Will it iinhert the same from table B?
3) What would be the degree of parallelism of table A?-Will it inherit the DOP from B?
Thank you very much for your guidance in advance..
Regards,
Bhagat1 => it will inherit from the default value
2 => same thing
3 => same thing
The create table as select will only copy the structure of the source table and can copy the datas too. That is all. -
I have a big problem
I have to check the data for quality data
Lets say i have to check data in emp table
First i have to check whether the empno is of type number
IF empno=number then
if ename starts with a particualar format then
---printouts and this procedure goes on for about 10 coulumns
I have designed a hard coded procedure where I input table name and column name and the procedure does the checks and give out result
I have planned to call that procedures here for each checks
its like i make the procedure to execute and the procedure returns rowid of the correct data
now i have to apply the second procedure where input is all the rowids of previous procedure and it goes on
I even dont know whether procedure is correct or function is correct
Its like select * from emp where ename=(procedure1(procedure2(procedure3)));
each procedure's output is Rowids only which satisfy a particular format of data
Please explain me in details
Please please help me.Nested calls are not the best of ideas. Ignoring that for a moment, there are a couple of ways to address this requirement in Oracle. One of these, and likely one of the more scalable ways, is to use Pipeline Table Functions.
The following code demonstrates the basics of this approach, using pipelined table functions to perform validation checks on data.
SQL> -- generic type to serve as input cursors to the validation functions
SQL> create or replace type TFormatCheckRow as object
2 (
3 row_identifier varchar2(30),
4 value varchar2(100)
5 );
6 /
Type created.
SQL>
SQL> -- validation functions returns the rowid of rows that are valid
SQL> create or replace type TRowID as object
2 (
3 row_identifier varchar2(30)
4 );
5 /
Type created.
SQL>
SQL> create or replace type TRowIDTable is table of TRowID;
2 /
Type created.
SQL>
SQL>
SQL> create or replace package LIB is
2
3 type TCursor is REF CURSOR;
4 end;
5 /
Package created.
SQL>
SQL> -- sample validation function to check if the value is a valid NUMBER, and
SQL> -- if so will return the rowid of that row for further processing
SQL> create or replace function ValidateNumber( c LIB.TCursor ) return TRowIDTable
2 pipelined is
3
4 MAX_FETCH_SIZE constant number := 100;
5 type TBuffer is table of TFormatCheckRow;
6
7 buffer TBuffer;
8
9 function IsNumber( val varchar2 ) return boolean is
10 n number;
11 begin
12 n := TO_NUMBER( val );
13 return( TRUE );
14 exception when OTHERS then
15 return( FALSE );
16 end;
17
18 begin
19 loop
20 fetch c bulk collect into buffer limit MAX_FETCH_SIZE;
21
22 for i in 1..buffer.Count
23 loop
24 if IsNumber( buffer(i).value ) then
25 PIPE ROW( TRowID( buffer(i).row_identifier ) );
26 end if;
27 end loop;
28
29 exit when c%NOTFOUND;
30 end loop;
31
32 close c;
33
34 return;
35 end;
36 /
Function created.
SQL> show error
No errors.
SQL>
SQL>
SQL> -- a sample table to check
SQL> create table foo_tab
2 (
3 some_value varchar2(20)
4 )
5 /
Table created.
SQL>
SQL>
SQL> -- put some data into the table
SQL> insert
2 into foo_tab
3 select
4 object_id
5 from all_objects
6 where rownum < 11
7 /
10 rows created.
SQL>
SQL> insert
2 into foo_tab
3 select
4 SUBSTR(object_name,1,20)
5 from all_objects
6 where rownum < 11
7 /
10 rows created.
SQL>
SQL> commit;
Commit complete.
SQL>
SQL> -- return rowids of all rows from FOO_TAB where the column SOME_VALUE is a valid number
SQL> select
2 row_identifier
3 from TABLE(ValidateNumber( CURSOR(select TFormatCheckRow(f.rowid,f.some_value) from foo_tab f) ))
4 /
ROW_IDENTIFIER
AAAOQKAAEAAAAFQAAA
AAAOQKAAEAAAAFQAAB
AAAOQKAAEAAAAFQAAC
AAAOQKAAEAAAAFQAAD
AAAOQKAAEAAAAFQAAE
AAAOQKAAEAAAAFQAAF
AAAOQKAAEAAAAFQAAG
AAAOQKAAEAAAAFQAAH
AAAOQKAAEAAAAFQAAI
AAAOQKAAEAAAAFQAAJ
10 rows selected.
SQL>
SQL>
SQL> -- list the rows that contain valid numbers
SQL> with ROWID_LIST as
2 (
3 select
4 row_identifier
5 from TABLE(ValidateNumber( CURSOR(select TFormatCheckRow(f.rowid,f.some_value) from foo_tab f) ))
6 )
7 select
8 *
9 from foo_tab f
10 where f.rowid in (select row_identifier from ROWID_LIST)
11 order by 1
12 /
SOME_VALUE
258
259
311
313
314
316
317
319
605
886
10 rows selected.
SQL> -
SELECT...where ROWNUM 1 doesn't work??
Hi all,
We're working to try to eventually update some rows on a table that an application has threads processing.
We're trying to basically update the value of one field it uses to 'mark' which is owned by that process.
while doing this, we were trying to just reset this field on some rows above where it is working. We tried using rownum.
This didn't work, so in trying to troubleshoot...we tried just a basic select to see if it would return any values to make sure rownum would work (dunno why it wouldn't).
If I try the following I get weird results
select count (*) from table1.
Returns like 13000 rows for a count.
I do this
select count (*) from table1 where rownum > 1
I get no rows.
The table has 13000 rows in it....
Now, if I do something like a select col1 from table1 where rownum < 10,
I get 9 rows...
I'm puzzled by this...
This originally came up with trying to update like I said, and was trying to do something like:
update table1 set field1 = 'value' where rownum between 1000 and 3000;
No rows updated.
I've not played with rownum in awhile, can someone give me some insight on what is going on here, or some links to info?
Thanks in advance,
cayenneKeep in mind, rownum is query pseudo-column given row number in the outpup result.
I'll try to resume what Oracle is doing when testing rownum>1 :
1. based on your where clause, Oracle will retrieve one row, rownum=1 (because it is the first row returned), test if it is >1, it is not, then don't get this row, then rownum go back to its previous value, 0
2. Oracle will retrieve an other row, rownum=previous value(=0) + 1=1 (because no rows have been returned yet), test if it is >1, it is not, then don't get this row neither, then rownum go back to its previous value, 0
3. see the 2 point
4. finally, no of the row is returned because rownum is always stuck to "0"
Nicolas.
Maybe you are looking for
-
How do I recover a lost partition on my mac
When I used Disk Utility it showed my mac hard drive, and another what I assumed was a partition named Apple (something or other) as you can see I am not very savvy. I eventually realized that this partition was now under a different name and shown
-
Variable entry warning with RRMS_MESSAGE_HANDLING
Hi, If I post a message in the Variable Exit (I_STEP = 3) with the function module RRMS_MESSAGE_HANDLING, the user cannot execute the variable until a valid entry exists. I would like to only raise an information that appears only once and the user c
-
Hyperlinking Overriding Marquee Zoom?
Hello all - I'm a new member to this forum and have what is (I hope) a simple question... I've got a series of PDF documents that have hyperlinks embedded in them from another application (ArcGIS). The hyperlinks work great with Adobe Reader 8 (the
-
Hi I am getting the following error when I trying to connect to Oracle 10.1.0.2.0 from my Java programme using JDBC. I have added the C:\oracle\product\10.1.0\Db_1\jdbc\lib\ojdbc14.jar to classpath and ensured ojdbc14.jar file at the above location.
-
hi friends, I have created parameter transaction using se93 for table display (SM30) and then created an authorization object using t-code su21. this authorization object contain only 2 ctivities i'e change and display(02 and 03) now i want to attach