Query Results: Retrieve All Rows?
I was looking for a feature that will allow me to choose to return "all records" to the Query Results window. The current behavior is to fetch 50 records at a time (e.g. fetch 50 records as you scroll through the results = s-l-o-w). What I'd like to do is "Retrieve All Rows" then use to the scroll bar to "smoothly" scroll to the last record. For example, the 8.0.6 version of Query Builder had this functionality and in SQL Developer 3.0, if I right-click on the results. I can choose to "Count Rows...", seems like this would be a perfect place to put a "Retrieve All Rows" option.
Hi,
My advice: do something only if there is a business case for it; satisfying your curiosity can get surprisingly expensive.
You have already read about using Run Statement to execute a SQL statement, then Ctrl-End to auto-scroll to the end. You can try the same for Run Script, but first you will probably need to increase the value of Tools|Preferences|Database|Worksheet|Max rows to print in a script. Of course, taking either of these approaches slows things down due to displaying output and scrolling. Same with SQL*Plus. And, as mentioned previously, Java memory management in SQL Developer can cause slow downs and hangs if the result set is large enough.
Here is a way to minimize that delay, avoid hangs, and get a more repeatable result:
1) Save some query to, say, C:\Temp\AllCustomers.sql. For example, "select * from customers;" or "select id from customers;".
2) Run it from a SQL Developer worksheet using Run Script (F5), or from the SQL*Plus command line, with a script like this:
set timing on
set termout off
spool C:\Temp\AllCustomers.lst
@C:\Temp\AllCustomers.sql
spool offEven then you will see that the timing results will vary. Maybe "select *" runs much slower than "select id" because the logical output lines are long and get wrapped into multiple physical output lines in the file. Minimize that by setting linesize to a longer value (but only in SQL*Plus -- it isn't supported in SQL Developer) and repeat the test to see. Maybe SQL*Plus runs it much faster than SQL Developer because one is a command line environment and the other a GUI tool with more overhead. Or maybe the SQL Developer JVM is near its size limit and lots of Java garbage collection is slowing it down. Simple question, complicated answer.
Regards,
Gary
SQL Developer Team
P.S.: And if by chance you are using a version of SQL Developer so old it does not include the output time in the query result tab's toolbar, using Run Script with set timing on is your only recourse.
Edited by: gggraham on Oct 27, 2011 4:54 PM
Similar Messages
-
Retrieve All Rows in Disocverer Plus
Hi,
Can we set the 'Retrieve All Rows' option in Discoverer Plus ?
I can go to Tools > Retrieve All Rows. But is there any way (like a checkbox) we can set it permanantly so that every user need not to look into it ?
Thanks!
YoginiHi,
As a workaround, I changed the value for :
Tools > options > Query Governor >
Retrieve Data incrementally in groups of = 10000 (This is the max value ).
But it didnt work.
It retrieves first 250 rows (by default) and then it says 'Click to retrieve next 10000 rows'..its not what I want.
Any Suggestions?
Yogini -
Query to retrieve all saved user queries?
Hi,
In which table are the user queries saved?
How can I write a query to retrieve all the user created queries?
I need to copy all the user queries which are implemented in 1 client implementation to a different client's implementation.
Thanks.Hi Rajesh
Try This query
select QName,QString from OUQR .
You can use the quick copy option if you are using SAP version 9 and if lower you can use the copy express addon..
SAP Business One 9 - Implemenation Center Quick Copy
Hope Helpful
Regards
Kennedy -
How can I retrieve all row information from a database table.
I have a jsp file which calls info from columns in a table. My question, is how can I edit it so that it retrieves all the rows?
I tried using resultset SalesInfo.next() which only retrieves the last row value and resultset SalesInfo.first() which only retrieves the first row value.
Here is my code
public ResultSet SalesInfo;
public void getSalesInfo()
try
Statement stmt = db.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
SalesInfo = stmt.executeQuery("SELECT sales_id,cust_id,product_id, quantity from sales;");
SalesInfo.first();
setCartsales_id (SalesInfo.getString("sales_id"));
setCartcust_id (SalesInfo.getString("cust_id"));
setCartProduct_id(SalesInfo.getString("product_id"));
setCartquantity (SalesInfo.getString("quantity"));
catch(SQLException e )
setCartsales_id(e.toString());
e.printStackTrace();
Also I apologise for not having the proper code format as I had a problem with my keyboard.public class SalesDB{
public static synchronized Vector getSalesDetail(Connection connection) throws SQLException{
String query = "SELECT * from Sales;"
Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery(query);
Vector sale_details = new Vector();
while(results.next() == true){
SaleInfo saleInfo = new SaleInfo(results.getString("sales_id"),results.getDouble("cust_id"),results.getString("product_id"));
sale_details.add(saleInfo);
results.close();
statement.close();
return sale_details;
} -
Query to return ALL rows even those with zero counts
Hi,
The following query will return only those rows that have a non zero count value:
select c.id, a.name, count(*) as XYZ from CON c, CUST a
where c.help !='1' and (c.id = a.id) group by c.id, a.name order by c.id;
The results are:
1 ME 3
3 YOU 4
What i want is to return all rows in CUST and the count, XYZ, that correspond to each row in CUST that matches the whare condition above, even if the count is zero.
ie
1 ME 3
2 WE 0
3 YOU 4
Can this be done?You may want to get the counts then do the outer join. If you simply count with an outer join you will get 1 for 'WE' because there is a row in the cust table with 'WE'. This may work for you;
with
cust as (
select 1 id, 'ME' name from dual union all
select 2 id, 'YOU' name from dual union all
select 3 id, 'WE' name from dual),
con as (
select 1 id, '2' help from dual union all
select 1 id, '2' help from dual union all
select 1 id, '2' help from dual union all
select 2 id, '2' help from dual union all
select 2 id, '2' help from dual union all
select 2 id, '2' help from dual union all
select 2 id, '2' help from dual)
-- end of test data
select a.id, a.name, nvl(c.cnt,0) xyz
from cust a,
(select id, help, count(*) cnt
from con
where help !='1'
group by id, help) c
where a.id = c.id(+) -
Resultset - retrieves all rows or only one at a time
Hey guys,
I am using oracle DB. Lets say the query i run has about 1000 records
when i call:
prepareStmt(cstmt);
Rsultset rs = cstmt.executeQuery();
Do I get all the records, or do i get them one by one
when i call
rs.next
is this DB specific??
This is simple q, but i been working with oracle and java for a while, and for some reason this never came up.
thank you.The driver implementation is free to retrieve as many or as few rows at a time from the database as it wants. You can suggest to the driver how many rows at a time it should retrieve with setFetchSize(); the driver is free to ignore your suggestion (but many drivers honor it). The fetch size default varies wildly from driver to driver, from 1 row at a time to all rows at a once. For the Oracle thin driver, the default is 10, which is usually too small to give the best performance (I use between 100 and 1,000, usually 250).
Note that when you're working with a very large ResultSet, a driver that does "all rows at once" can cause you to run out of memory. Also, some drivers will cache every single row when using a scrollable ResultSet (and again run you out of memory) but not do so with a forward-only ResultSet (Oracle has this issue). -
Bex Query not passing all rows to Crystal reports
hello experts,
i have created a bex query that shows all employees from the master data table and links to the cats table to show absence hours...
in bex, all employees are showing and some of the employees have hours showing for sick time. this is known as a left outer join.
i have created a report in crystal with this bex query and it does not show rows from the master data that do not have a link to the cats table. only the rows that have a link to the cats table are showing up. (this is compared to a inner join)
the reason i need the master data from the employee table is that the users want to divide the total hours off(sick time) per department by the total employees in that department.
here is the sql query from crystal that was created automatically when i used the bex query to created the crystal report.
SELECT {Measures.4J8L2TQJ3P517ISQ1R4Y8UZ36, Measures.4J9PY3UANRIW2HW15YSOED92A, Measures.4J9TLIO0NDQROSA2YONCW6HB6}
ON COLUMNS,
NON EMPTY
CROSSJOIN(0EMPLOYEE.LEVEL01.MEMBERS, 0EMPLOYEE__0COMP_CODE.LEVEL01.MEMBERS)
DIMENSION PROPERTIES 0EMPLOYEE.50COMP_CODE, 0EMPLOYEE.50MAST_CCTR ON ROWS
FROM ZCATS_MC1/ZZCATS_MC1_Q001C
SAP VARIABLES 0I_DAYS INCLUDING 0CALDAY.20100502 : 0CALDAY.20100903
i am using the mdx driver, and the integration kit is 2.8.
any thoughts?
thanks,
erikThanks Ingo for the quick response.
this sounds like a limitation in the integration between bex and crystal because the query shows the correct data and the crystal reports does not. i have tried to add a calculated key figure to all the rows and put a number in it but it still does not show the rows in crystal.
my issue is that they(the business users) want to know all the employees in the employee master data along with all the sick / illness data.
do you have a suggestion for this issue?
do you think that the mdx driver should be updated to allow master data to flow to crystal?
thx,
Erik -
Improving a simple select query, which uses all rows.
Hi All,
Please excuse me if the question is too silly. Below is my code
SQL> select * from v$version;
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
Elapsed: 00:00:00.07
SQL> show parameter optim
NAME TYPE VALUE
object_cache_optimal_size integer 102400
optimizer_dynamic_sampling integer 2
optimizer_features_enable string 10.2.0.1
optimizer_index_caching integer 0
optimizer_index_cost_adj integer 100
optimizer_mode string ALL_ROWS
optimizer_secure_view_merging boolean TRUE
plsql_optimize_level integer 2
SQL> explain plan for select SUM(decode(transaction_type,'D',txn_amount,0)) payments_reversals,
2 SUM(decode(transaction_type,'C',txn_amount,0)) payments,primary_card_no,statement_date
3 from credit_card_pymt_dtls group by primary_card_no,statement_date;
Explained.
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 2801218574
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1912K| 56M| | 21466 (3)| 00:04:18 |
| 1 | SORT GROUP BY | | 1912K| 56M| 161M| 21466 (3)| 00:04:18 |
| 2 | TABLE ACCESS FULL| CREDIT_CARD_PYMT_DTLS | 1912K| 56M| | 4863 (3)| 00:00:59 |
9 rows selected.
SQL> select index_name,index_type
2 from all_indexes
3 where table_name = 'CREDIT_CARD_PYMT_DTLS';
INDEX_NAME INDEX_TYPE
INDX_TRANTYPE BITMAP
INDX_PCARD NORMAL
INDX_PSTATEMENT_DATE NORMALThe query is using all the records in the CREDIT_CARD_PYMT_DTLS table. Transaction type will be either 'C' or 'D'.
CREDIT_CARD_PYMT_DTLS has 2 million rows and the qury will output 1.5 million rows. Table statisticas are upto date.
The query now is taking almost 5 minutes. Is thaere any way to reduce the time ?
Our DB server has 8 CPUs and 8 GB memory. Is the timing genuine ?
Thanks in Advance.
Edited by: user11115924 on Apr 29, 2009 2:43 AM
All the columns used in the query are already indexed. ( Ofcourse, not only for this query.)Hi All,
Thanks for the helps provided. Expecting it once more..
My actual query is as below
select primary_card_no,base_segment_number,atab.previous_balance,current_balance,intrest_amt_due_this_cycle,total_min_amt_due,total_credit_limit,
total_purchase_this_cycle,total_cash_trns_this_cycle,available_credit_limit,payments,utilization,payment_ratio,payments_reversals,cash_limit,
available_cash_limit, description
from
select primary_card_no,DECODE(base_segment_number,NULL,primary_card_no,base_segment_number) base_segment_number,
SUM(previous_balance) previous_balance,SUM(current_balance) current_balance ,SUM(intrest_amt_due_this_cycle) intrest_amt_due_this_cycle,
SUM(total_min_amt_due) total_min_amt_due,SUM(total_credit_limit_all) total_credit_limit,
SUM(total_purchase_this_cycle) total_purchase_this_cycle,SUM(total_cash_trns_this_cycle) total_cash_trns_this_cycle,
SUM(available_credit_limit) available_credit_limit,SUM(payments) payments,
(SUM(NVL(current_balance,0)) / SUM(total_credit_limit_all)) * 100 utilization,
(SUM(NVL(payments,0)) / DECODE(SUM(previous_balance),0,NULL,SUM(previous_balance))) * 100 payment_ratio,
SUM(payments_reversals) payments_reversals,SUM(cash_limit) cash_limit,SUM(available_cash_limit) available_cash_limit
from
( select a.*,NVL(payments_reversals,0)payments_reversals ,NVL(payments,0) payments
from
( select primary_card_no,previous_balance,current_balance,intrest_amt_due_this_cycle,total_min_amt_due,total_purchase_this_cycle,
total_cash_trns_this_cycle,statement_date,available_credit_limit,cash_limit,available_cash_limit,
(case when statement_date <= TO_DATE('301108','ddmmyy') then NULLIF(total_credit_limit,0)
else NULLIF((select credit_limit
from ccm_dbf_chtxn_v0 t1
where t1.batch_id = '011208'
and SUBSTR(t1.card_number,4) = a.primary_card_no),0)
end) total_credit_limit_all
from
( select primary_card_no,previous_balance,current_balance,INTREST_AMT_DUE_THIS_CYCLE,
TOTAL_MIN_AMT_DUE,TOTAL_PURCHASE_THIS_CYCLE,TOTAL_CASH_TRNS_THIS_CYCLE,statement_date,
AVAILABLE_CREDIT_LIMIT,cash_limit,available_cash_limit,total_credit_limit
from credit_card_master_all@FGBAPPL_LINK
) a
where statement_date between ADD_MONTHS(TRUNC(SYSDATE,'mm'),-6) and TRUNC(SYSDATE,'mm')-1
) a,
( select SUM(decode(transaction_type,'D',txn_amount,0)) payments_reversals,
SUM(decode(transaction_type,'C',txn_amount,0)) payments,primary_card_no,TO_CHAR(statement_date,'MON-RRRR') sdate
from credit_card_pymt_dtls
group by primary_card_no,TO_CHAR(statement_date,'MON-RRRR')
) b
where TO_CHAR(a.statement_date,'MON-RRRR')= b.sdate(+)
and a.primary_card_no= b.primary_card_no(+)
) a,
( select SUBSTR(a.card_number,4) card_number,base_segment_number,TO_DATE(account_creation_date,'DDMMYYYY') account_creation_date,
a.batch_id, credit_limit credit_limit_current
from
( select *
from ccm_dbf_phtxn_v0
where batch_id= (SELECT to_char(MAX(TO_DATE(SUBSTR(BATCH_ID,1,6),'DDMMRR')),'DDMMRR') FROM CCM_MST_V0)
) a,
( select *
from ccm_dbf_chtxn_v0
where batch_id=(SELECT to_char(MAX(TO_DATE(SUBSTR(BATCH_ID,1,6),'DDMMRR')),'DDMMRR') FROM CCM_MST_V0)
) b
where a.card_number=b.card_number
and TO_NUMBER(ROUND(MONTHS_BETWEEN(SYSDATE,TO_DATE(account_creation_date,'DDMMYYYY')),2)) >=6
and a.company ='BNK'
) b
where a.primary_card_no = b.card_number
group by primary_card_no,base_segment_number) atab, card_summary_param btab
where utilization between utilization_low and utilization_high
and payment_ratio between payment_ratio_low and payment_ratio_high
and SIGN(atab.previous_balance) =btab.previous_balanceWhere I have to put the PARALLEL hint for maximum performance?
Sorry for asking blindly without doing any R&D. Time is not permitting that...
Edited by: user11115924 on Apr 29, 2009 5:09 AM
Sorry for the kiddy aliases.. Query is not written by me.. -
Hi guys,
I have the following situation:
Table_A
ID NUMBER
NAME VARCHAR2(10)
TABLE_B
ID_B
NAME_B VARCHAR2(10)
By mistake I did the following query:
Select *
from table_a
where id in (select ID from table_b);
My question is: Why the query return all rows from TABLE_A if in the inner select (select ID...) I'm didn't write any of the columns that exist on TABLE_B.?
Hope this is clear.!.
thanks in advance.select *
from table_a
where id in (select ID from table_b);The subquery will attempt to resolve the column named "ID" first within the subquery itself, then (if it doesn't find it) in the parent query. Since there is no ID column in table_b, the query actually becomes something like
select *
from table_a a
where a.id in (select a.id from table_b);
in other words
select *
from table_a
where id = id
which is equivalent to
select *
from table_a
where id IS NOT NULL
HTH -
Personnel Admin AdHoc Query not retrieving all records
Hi, I recently added a custom info type to a copy of the SAP ad hoc query for Personnel Admin by using the menu path in SQ02>Edit>Change Infotype selection . The query is picking up the new info type and runs fine but does not retrieve all records from the table for a given personnel id. It only retrieves 1 record per id.
Has anyone dealt with this before and have an easy/quick fix for this?Have other users try the query, preferably a user with end user authorization.
I've had this issue before, I'm an IT person and I customized a Standard infoset.
During testing, I'm only getting 1 (in my case) Insurance record per employee.
The end user can see multiple record per employee.
Btw, did you customize a Global or a Standard Infoset?
Regards,
Olekan -
Query to retrieve all unreconciled BP account transactions
Hi, can anyone help me to formulate a SQL query to retrieve only the unreconciled transactions from a business partner account. In other words all the records that display in the account balance enquiry when you tick the "Display Unreconciled Trans. Only" box.
Hi all,
No one has been able to help with this one. It appears to me there should be a simple solution somewhere. Can anyone be a hero and answer this?
I am querying the JDT1 table to get the transactions but I get everything and I want to identify only the ones that have not yet been reconciled.
Cheers,
Greg. -
Iterate query result - put specific rows in a collection and do output
JDeveloper 11.1.1.3.0
Oracle Lite: 10.2.0.1.0
Browser: IE 7
Hi,
please help me in working on following requirement:
1. Iterate the View Object Query Result
2. Do some calculation on the Rows, lets say:
Concatination of column1 and column2 and place it in a non database Attribute "column3"
3. How to handle/place the non database attribute?
4. Fetch specific rows from the query result; there should be a comparison, like checking master and detail hierachy struktur:
Take Column1_ID (Master) check in columns2_ID (Detail), when found detail take this Row and place it in a buffer (Maybe ArrayList, or something like that)
5. Show the Chace(ArrayList) to user, in a form of View Object, with standard functions like sorting and filtering
Till now my process of solving the above requiremnts are:
To Point 1:
Created a service method in Application Implementation Class
public void iterateEmp(){
EmployeesVOImpl vo = getEmployeesVO1();
while (vo.hasNext()){
EmployeesVORowImpl row = (EmployeesVORowImpl)vo.next();
System.out.println(row.getEmployeeId() + " | " + row.getFirstName() + " | " + row.getLastName() + " | " + row.getEmail());
//row.setCalcCol(row.getFirstName() + "," + row.getLastName());
}To point 2:
Added an attribute to the View Object, with updateable and Queryable options. Place it on the JSPX Page.
With setter method, filled with values, for example (non Database Attributes Name is CalcCol):
Name:
//see above code
row.setCalcCol(row.getFirstName() + "," + row.getLastName());When doing so, on initial Call the values will be representated, but when sorting o filtering will be done, the values then will be erased.
3. Added an Attribute in View Object "Attributes Panel".
Here the XML Code of the View Object:
<?xml version="1.0" encoding="windows-1252" ?>
<!DOCTYPE ViewObject SYSTEM "jbo_03_01.dtd">
<!---->
<ViewObject
xmlns="http://xmlns.oracle.com/bc4j"
Name="EmployeesVO"
Version="11.1.1.56.60"
BindingStyle="OracleName"
CustomQuery="true"
ComponentClass="model.EmployeesVOImpl"
PageIterMode="Full"
UseGlueCode="false"
RowClass="model.EmployeesVORowImpl">
<DesignTime>
<Attr Name="_codeGenFlag2" Value="Access|Coll|VarAccess"/>
<Attr Name="_isExpertMode" Value="true"/>
<Attr Name="_isCodegen" Value="true"/>
</DesignTime>
<SQLQuery>
<![CDATA[select employee_id, first_name, last_name, email from employees]]>
</SQLQuery>
<ViewAttribute
Name="EmployeeId"
IsUpdateable="false"
IsPersistent="false"
IsNotNull="true"
PrecisionRule="true"
Precision="6"
Scale="0"
Type="oracle.jbo.domain.Number"
ColumnType="NUMBER"
AliasName="EMPLOYEE_ID"
Expression="EMPLOYEE_ID"
SQLType="NUMERIC">
<DesignTime>
<Attr Name="_DisplaySize" Value="22"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="FirstName"
IsUpdateable="false"
IsPersistent="false"
PrecisionRule="true"
Precision="20"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="FIRST_NAME"
Expression="FIRST_NAME"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="20"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="LastName"
IsUpdateable="false"
IsPersistent="false"
IsNotNull="true"
PrecisionRule="true"
Precision="25"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="LAST_NAME"
Expression="LAST_NAME"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="25"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="Email"
IsUpdateable="false"
IsPersistent="false"
IsNotNull="true"
PrecisionRule="true"
Precision="25"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="EMAIL"
Expression="EMAIL"
SQLType="VARCHAR">
<DesignTime>
<Attr Name="_DisplaySize" Value="25"/>
</DesignTime>
</ViewAttribute>
<ViewAttribute
Name="CalcCol"
IsSelected="false"
IsPersistent="false"
PrecisionRule="true"
Type="java.lang.String"
ColumnType="VARCHAR2"
AliasName="VIEW_ATTR"
SQLType="VARCHAR"/>
<AttrArray Name="KeyAttributes">
<Item Value="EmployeeId"/>
</AttrArray>
</ViewObject>To Point 4:
There should be a specific sort order, which i have to code in ADF.
Just to give an overview:
Colum1 and Column2 (nothing to do with the emp table) have relationship. Several hierachies are existing in the Query Result.
For identifying the start point of any of these hierachies, i have to iterate through the Query Result and fetch these start point
and buffer it in an array or something like that.So in the end i have to get the same query Result but with different Sort Order.
How to buffer theses Rows (Array?) and show in a View Object?
Can we use the same view Object for solving that, or should we use another View Object which catches the new Result Set?
To Point 5:
The Result should be, as mentioned above, a View Object including new Result Set, which can provide standard behavior (sort, filter)
I hope the requirement is defined clearly enough, so maybe you can make some suggestions on that.
Thank you for replies.
Edited by: user9198377 on 13.07.2011 02:52Hi.. You can do this without DB View. Have CalcCol transient attribute in VO. Instead of iterating VO rows and setting CalcCol attr, generate View Row Impl class. Inside getCalcCol(), write your logic. This will be called during each and every request so that transient attr data won't become null during sorting and filtering. If your VO is entity driven, do the same in Entity impl class
Raghu
Edited by: Raguraman on Sep 5, 2011 9:48 AM -
PUT QUERY RESULT ON ONE ROW INSTEAD OF MULTIPLE ONE
Hi
I have two tables with the column id_table1 to join them.
My first table "table_one" contain 3 fields and one record.
id_table1 : 1
table1 : project1
date_project : 2005/08/01
My second table "table_two" contain 3 fileds and 3 records which contain the id 1 on the join column.
id_table2 : 1
table2 : pdf
id_table1 : 1
id_table2 : 2
table2 : excel
id_table1 : 1
id_table2 : 3
table2 : text
id_table1 : 1
If i did a simply join, the result is appear in 3 lines:
1 project1 2005/08/01 excel
1 project1 2005/08/01 pdf
1 project1 2005/08/01 text
Is this possible to have this result in one query :
1 project1 2005/08/01 excel pdf text
I mean to have the result in one row and a separated column for each item of the table2.
We know how to do it with one column concatened ("excel pdf text") but not with separated column
("excel" "pdf" "text")
Thanks if someone has a solution.
AlexandreSQL> select e.job, d.dname from emp e, dept d where e.deptno = d.deptno;
JOB DNAME
CLERK RESEARCH
SALESMAN SALES
SALESMAN SALES
MANAGER RESEARCH
SALESMAN SALES
MANAGER SALES
MANAGER ACCOUNTING
ANALYST RESEARCH
PRESIDENT ACCOUNTING
SALESMAN SALES
CLERK RESEARCH
CLERK SALES
ANALYST RESEARCH
CLERK ACCOUNTING
14 rows selected.
SQL> select e.job,
2 max(decode(d.dname,'RESEARCH',d.dname,null)) "Research",
3 max(decode(d.dname,'SALES',d.dname, null)) "Sales",
4 max(decode(d.dname,'ACCOUNTING',d.dname,null)) "Accounting"
5 from emp e, dept d where e.deptno = d.deptno
6 group by job
7 /
JOB Research Sales Accounting
ANALYST RESEARCH
CLERK RESEARCH SALES ACCOUNTING
MANAGER RESEARCH SALES ACCOUNTING
PRESIDENT ACCOUNTING
SALESMAN SALESRgds. -
How can we retrieve all rows following a particular records in a table.
Hi all,
i've to fetch all records following a particular rcord in a table..
for ex. we have 4 rows :
col1 col2 col3
A A1 A2
B B1 B2
C C1 C2
D D1 D2
How can i retrieve rows following B record. plz. help me
Thx.It depends what you mean by "following". Tables don't have an innate ordering. If you selected all the rows from this table they wouldn't necessarily turn up in that order.
All you can do is create a query ordering by one or more of the columns (in this case you appear to want lexical order) and then select on the basis that the column values exceed a set of values.
For example, with your data this happens to work:
select * from yourtable where col1 > 'B' order by co1;But I very much doubt that this is what you actually need to do, and it is VERY important that you grasp that tables do not have any innate ordering. -
Retrieve all rows when condition is met
hi all, consider the following data.
WITH table1 AS
SELECT 1 amt, 'dummy' txt, 'R' txt2 , '1X' pid FROM dual UNION ALL
SELECT 123 amt, 'CATS' txt, 'P' txt2, '1X' pid FROM dual UNION all
SELECT 145 amt, 'CAR' txt, 'PR' txt2, '1X' pid FROM dual UNION all
SELECT 165 amt, 'NAME' txt, 'P' txt2, '1X' pid FROM dual UNION ALL
SELECT 166 amt, 'NAME' txt, 'PK' txt2, '1X' pid FROM dual UNION all
SELECT 100 amt, 'dummy' txt, 'R' txt2, '2X' pid FROM dual UNION ALL
SELECT 13 amt, 'CATS2' txt, 'P' txt2, '2X' pid FROM dual UNION all
SELECT 15 amt, 'CAR2' txt, 'PR' txt2, '2X' pid FROM dual UNION all
SELECT 15 amt, 'NAME2' txt, 'P' txt2, '2X' pid FROM dual
)i want to display the following output
AMT TXT TXT2 PID
========================
1 DUMMY R 1X
123 CATS NO 1X
145 CAR NO 1X
165 NAME NO 1X
166 NAME PK 1X
100 DUMMY R 2X
13 CATS2 P 2X
15 CAR2 PR 2X
15 NAME2 P 2Xthe logic behind this output is as follow:
when i find a row where amount is 1 or -1 and txt=dummy, i want to take the pid value of that row and find all the rows with that pid where txt2 in (P,PR) and set the value of txt2 to NO.
if txt2 is not in P OR PR, then set the column to current Value
eg. the first row in data above has amt=1 and txt=dummy. i will take the pid of this row which is 1X and find all other rows with that pid value and txt2 in P,PR.
in this case i found row with amt=123,145,165. i display those rows in output but txt2 change TO NO.
if you notice , row with amt=166 was not change because txt2 = PK. in the second set of data, i display the data as is since i could not find a row with amt in(1,-1) and txt=dummy
can someone help me write a query to display the above output?WITH table1 AS
SELECT 1 amt, 'dummy' txt, 'R' txt2 , '1X' pid FROM dual UNION ALL
SELECT 123 amt, 'CATS' txt, 'P' txt2, '1X' pid FROM dual UNION all
SELECT 145 amt, 'CAR' txt, 'PR' txt2, '1X' pid FROM dual UNION all
SELECT 165 amt, 'NAME' txt, 'P' txt2, '1X' pid FROM dual UNION ALL
SELECT 166 amt, 'NAME' txt, 'PK' txt2, '1X' pid FROM dual UNION all
SELECT 100 amt, 'dummy' txt, 'R' txt2, '2X' pid FROM dual UNION ALL
SELECT 13 amt, 'CATS2' txt, 'P' txt2, '2X' pid FROM dual UNION all
SELECT 15 amt, 'CAR2' txt, 'PR' txt2, '2X' pid FROM dual UNION all
SELECT 15 amt, 'NAME2' txt, 'P' txt2, '2X' pid FROM dual
SELECT amt,
txt,
case
when txt2 in ('P','PR')
then case max(case when txt = 'dummy' and amt in (1,-1) then 1 end) over(partition by pid)
when 1
then 'NO'
else txt2
end
else txt2
end txt2,
pid
FROM table1
AMT TXT TX PI
1 dummy R 1X
123 CATS NO 1X
145 CAR NO 1X
165 NAME NO 1X
166 NAME PK 1X
100 dummy R 2X
13 CATS2 P 2X
15 CAR2 PR 2X
15 NAME2 P 2X
9 rows selected.
SQL> SY.
Edited by: Solomon Yakobson on May 4, 2011 5:35 PM
Maybe you are looking for
-
My external hard drive is not recognized by my computer.
My external hard drive is not recognized by my computer. I used it earlier and it was fine however my computer froze and I unplugged my hard drive without properly ejecting it. Now when I plug it in nothing pops up. I've tried on three different comp
-
Changes that I am making in layout profile are not reflecting..?
Dear Experts, I have created a new Layout profile to adjust the user interface . I have created my new layout profile and added a layout set admin explorer to it then I have changed the settings in command groups to supress some commands and likewise
-
Web Intelligence Hangs When a Report is Cancelled
Web Intelligence hangs when a report is cancelled. Has anyone else had this problem and how have you fixed it? I have googled it and can find fixes for it on previous versions but can't find it on our current version. We are on SAP BusinessObjects
-
Elements 10 gets hung up on an occasional movie in media download Canon Power Shot
How do I fix the Canon.Download issue. R
-
Itunes won't open! Repeated Installs & Unistalls Help! Help!
I've been trying all weekend!! One message I get is "The cabinet file 'AppleMobileDevceSupport.cab' required for installation is corrupt and cannot be used. This could indicate a network error an error reading from the CD-Rom, or a problem with this