Application Development 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: 

Difference bt select single & select up 1 record

Former Member
0 Kudos

What is the exact difference between select single and select up to 1 record

6 REPLIES 6

Former Member
0 Kudos

Hi

Difference Between Select Single and Select UpTo One Rows

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.

<b>Reward points for useful Answers</b>

Regards

Anji

0 Kudos

So it is better use select up to 1 record right?

Former Member
0 Kudos

What is use of Table Maintenance generator?

What is the difference between SM30, SM31, SE54.

0 Kudos

hi,

The Table Maintenance Generator is used to create table maintenance program to add, modify or delete records in the database table. This can be accessed using transaction SE54 or in SE11 using the menu Utilities->Table Maintenance Generator

the maintenance view allows a user to easily enter values into a table, e.g. the administrator enters values into a customising table.

SE54 is the developer tool to generate / change the maintenance view, which is a set of function modules and screens.

SM30 is the user / administrator tool to use the maintenance view. It internally calls the generated function modules and screens, but those details are hidden from the user.

One advantage is that if you use the maintenance view to enter values into a customising table and press SAVE, you will automatically get a popup asking for a customising transport.

regards,

omkar.

Message was edited by:

Omkaram Yanamala

Former Member
0 Kudos

Hi,

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.

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 or lack of, applies any aggregate, ordering or grouping functions to them and then returns the first record of the resultant result set.

you can check the transaction in tcode se93 and in the table TSTC.

go thru these..

http://www.easymarketplace.de/transactions.php

http://www.sap-img.com/general/find-the-list-of-sap-transaction-codes.htm

Regards,

Omkar.

Former Member
0 Kudos

Hi,

The both method also fetch only one record but it has lot of difference,

EXAMPLE1:

***************

SELECT SINGLE * FROM MARA WHERE MATNR = 1400-300.

So in the above example we will get only one record which material number is 1400-300.

EXAMPLE 2:

***************

SELECT * FROM MARA UPTO 1 ROW.

It will fetch first record only.

That is the main difference .

IF USEFULL REWARD