Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

query in select statment

Former Member
0 Likes
901

Hi ,

what is the difference between,select single and

select upto one row .

In a select statment .

Thanks ,

shankar.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
843

According to SAP Performance course the SELECT UP TO 1 ROWS is faster than SELECT SINGLE because you are not

using all the primary key fields.

select single is a construct designed to read database records with primary key. In the absence of the primary key,

it might end up doing a sequential search, whereas the select up to 1 rows may assume that there is no primary key

supplied and will try to find most suitable index.

The best way to find out is through sql trace or runtime analysis.

Use "select up to 1 rows" only if you are sure that all the records returned will have the same value for the field(s)

you are interested in. If not, you will be reading only the first record which matches the criteria, but may be the

second or the third record has the value you are looking for.

The System test result showed that the variant Single * takes less time than Up to 1 rows as there is an additional

level for COUNT STOP KEY for SELECT ENDSELECT UP TO 1 ROWS.

The 'SELECT SINGLE' statement selects the first row in the database that it finds that fulfils the 'WHERE' clause

If this results in multiple records then only the first one will be returned and therefore may not be unique.

Mainly: to read data from

The 'SELECT .... UP TO 1 ROWS' statement is subtly different. The database selects all of the relevant records that

are defined by the WHERE clause, applies any aggregate, ordering or grouping functions to them and then returns

the first record of the result set.

Mainly: to check if entries exist.

You can refer to the below link..

http://www.sap-img.com/abap/difference-between-select-single-and-select-upto-one-rows.htm

Hi ,

what is the difference between,select single and

select upto one row .

In a select statment .

Thanks ,

shankar.

6 REPLIES 6
Read only

Former Member
0 Likes
844

According to SAP Performance course the SELECT UP TO 1 ROWS is faster than SELECT SINGLE because you are not

using all the primary key fields.

select single is a construct designed to read database records with primary key. In the absence of the primary key,

it might end up doing a sequential search, whereas the select up to 1 rows may assume that there is no primary key

supplied and will try to find most suitable index.

The best way to find out is through sql trace or runtime analysis.

Use "select up to 1 rows" only if you are sure that all the records returned will have the same value for the field(s)

you are interested in. If not, you will be reading only the first record which matches the criteria, but may be the

second or the third record has the value you are looking for.

The System test result showed that the variant Single * takes less time than Up to 1 rows as there is an additional

level for COUNT STOP KEY for SELECT ENDSELECT UP TO 1 ROWS.

The 'SELECT SINGLE' statement selects the first row in the database that it finds that fulfils the 'WHERE' clause

If this results in multiple records then only the first one will be returned and therefore may not be unique.

Mainly: to read data from

The 'SELECT .... UP TO 1 ROWS' statement is subtly different. The database selects all of the relevant records that

are defined by the WHERE clause, applies any aggregate, ordering or grouping functions to them and then returns

the first record of the result set.

Mainly: to check if entries exist.

You can refer to the below link..

http://www.sap-img.com/abap/difference-between-select-single-and-select-upto-one-rows.htm

Read only

0 Likes
843

hi,

The 'SELECT SINGLE' - > statement selects the first row in the database accrding to the 'WHERE' clause

If multiple records are there then only the first one will be returned.

it might not be unique

The 'SELECT .... UP TO 1 ROWS' - > returs the first set of the record set, which satisfies the WHERE condition.

performance is high in this case

rgds

anver

if helepd amrk points.

Read only

Former Member
0 Likes
843

SELECT SINGLE searches for a unique row in the database.

SELECT UPTO 1 ROWS retrives the first row that matches the selection criteria(there may be more than 1 in the database). This is used mainly for Validation.

Reward points if this helps.

Regards

Meera

Read only

Former Member
0 Likes
843

In select single you have to where clause

In select up to 1 rows no need of where clause

In select single it retrieves the record based on the where condition

In select up to 1 rows it retrieves the first record

Read only

Former Member
0 Likes
843

Difference is select upto 1 row will select all the records in that condition and then does some grouping or sorting and then outputs the record. Takes more time.

But select single selects the forst row which meets that condition and gives the result.

For more details check blogs there is an article.

Keyword Performance tuning.

Regards

Read only

Former Member
0 Likes
843

To restrict the absolute number of lines included in the To read a single entry from the database, use the following:

SELECT SINGLE <cols> ... WHERE ...

To ensure that the line can be uniquely identified, you must specify values for all of the fields of the primary key of the table in the WHERE clause. If the WHERE clause does not contain all of the key fields, the syntax check produces a warning, and the SELECT statement reads the first entry that it finds that matches the key fields that you have specified.

SELECT ... FROM <tables> UP TO <n> ROWS ...

If <n> is a positive integer, the system reads a maximum of <n> lines. If <n> is zero, the system reads all lines that meet the selection criteria. If you use the ORDER BY clause as well, the system reads all lines belonging to the selection, sorts them, and then places the first <n> lines in the selection set.

Regards

Abhishek