Select Single & Select upto -- req when to use?

Hi Guys!
     Can u pls tell me when to use select single * & when to use select upto 1 rows. with eg.
  Thanks.

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.
Select Single
You need to mention all the key fields of the table.
No END SELECT required.
More performance compared to upto 1 row.
Where as UP to 1 row.
YOu can use if you do not have all the primiary key fields available.
END SELECT requeired.
Since all keys are not passing, possiblities of have other rows which satisfies the condition.
Select Statement with EndSelect is a loop, which in a single run retrieves a single Record. This Record has to be stored in a Work Area and then appended into an Internal Table.
Select Statements without EndSelect is not a loop and it retrieves the whole Record set matching the Criteria in a single shot and has to be Stored in an Internal Table Directly.
The most important thing to remember about the SELECT SINGLE is
There are several things to remember:
1) It retrieves only one row
2) It does not need an ENDSELECT statement
3) THE FULL KEY OF THE TABLE MUST BE INCLUDED IN
THE WHERE CLAUSE OF THE SELECT STATEMENT
to say in simple
SELECT SINGLE:
1. Select single is based on PRIMARY KEY
2. It will take the first record directly without searching of all relevant records.(Though you have lot of records for given condition)
SELECT UPTO 1 ROW :
It will check all records for given condition and take the first record .
It means in select single no searching, where as other searching.
Therefore, select single more efficient than UPTO 1 ROW.

Similar Messages

  • Diffrence b/w select single & select upto one row

    hi
       wat is the diffrence b/w select single & select upto one row?
    deepak

    Hi,
    Select single has to be used with a where condition that has all the key fields:
    It will always return a unique record(If a match is found).
    Select upto 1 rows would get your the first record if multiple matches are found.
    and select up to has to be end with endselect statements.
    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.
    When you say SELECT SINGLE, it means that you are expecting only one row to be present in the database for the condition you're going to specify in the WHERE clause. so that means, you will have to specify the primary key in your WHERE clause. Otherwise you get a warning.
    SELECT UP TO 1 ROWS is used in cases where you just want to make sure that there is at least one entry in the database table which satisfies your WHERE clause. Generally, it is meant to be used for existence-check.
    You may not want to really use the values returned by the SELECT statement in this case (thought this may not necessarily be so).And in each case the database optimizer may choose a different strategy to retrieve the data.
    Knowing when to use SELECT SINGLE or SELECT ... UP TO 1 ROWS
    A lot of people use the SELECT SINGLE statement to check for the existence of a value in a database. Other people prefer to use the 'UP TO 1 ROWS' variant of the SELECT statement.
    So what's the difference between using 'SELECT SINGLE' statement as against a 'SELECT .... UP TO 1 ROWS' statement ?
    If you're considering the statements
    SELECT SINGLE field INTO w_field FROM table.
    and
    SELECT field INTO w_field FROM table UP TO 1 ROWS. ENDSELECT.
    then looking at the result, not much apart from the extra ENDSELECT statement. Look at the run time and memory usage and they may be worlds apart.
    Why is this ?? The answer is simple.
    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, applies any aggregate, ordering or grouping functions to them and then returns the first record of the result set.
    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.
    http://sap-img.com/abap/difference-between-select-single-and-select-upto-one-rows.htm
    Check these links -
    The specified item was not found.
    diff between select single and up to one row
    diff b/w SECELT SINGLE *   AND SELECT UPTO ONE ROW
    Regards,
    Priyanka.

  • Difference between select single * & select upto 1 rows

    difference between select single * & select upto 1 rows

    Hi,
       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.
    Select Single
    You need to mention all the key fields of the table.
    No END SELECT required.
    More performance compared to upto 1 row.
    Where as UP to 1 row.
    YOu can use if you do not have all the primiary key fields available.
    END SELECT requeired.
    Since all keys are not passing, possiblities of have other rows which satisfies the condition.
    Select Statement with EndSelect is a loop, which in a single run retrieves a single Record. This Record has to be stored in a Work Area and then appended into an Internal Table.
    Select Statements without EndSelect is not a loop and it retrieves the whole Record set matching the Criteria in a single shot and has to be Stored in an Internal Table Directly.
    The most important thing to remember about the SELECT SINGLE is
    There are several things to remember:
    1) It retrieves only one row
    2) It does not need an ENDSELECT statement
    3) THE FULL KEY OF THE TABLE MUST BE INCLUDED IN
    THE WHERE CLAUSE OF THE SELECT STATEMENT
    Regards

  • Difference between select single & select upto 1 row

    Hi,
    what is the Difference between select single & select upto 1 row?
    Whose performance is better?
    Regards,
    Mayank

    Hi
    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.
    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.

  • Select single & select upto n row .

    Hi,
    Can anyone tell me the actual difference between select single & select upto n rows . which has the good performance .
    Can anyone send a sample code for that.

    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

  • Select single * & Select  * upto one row

    What is the difference between Select single * & Select * upto one row?Performance wise which is a better one?

    Hi,
        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.
    Select Single
    You need to mention all the key fields of the table.
    No END SELECT required.
    More performance compared to upto 1 row.
    Where as UP to 1 row.
    YOu can use if you do not have all the primiary key fields available.
    END SELECT requeired.
    Since all keys are not passing, possiblities of have other rows which satisfies the condition.
    Select Statement with EndSelect is a loop, which in a single run retrieves a single Record. This Record has to be stored in a Work Area and then appended into an Internal Table.
    Select Statements without EndSelect is not a loop and it retrieves the whole Record set matching the Criteria in a single shot and has to be Stored in an Internal Table Directly.
    The most important thing to remember about the SELECT SINGLE is
    There are several things to remember:
    1) It retrieves only one row
    2) It does not need an ENDSELECT statement
    3) THE FULL KEY OF THE TABLE MUST BE INCLUDED IN
    THE WHERE CLAUSE OF THE SELECT STATEMENT
    Regards

  • AT LINE-SELECTION won't be triggered when I use SET PF-STATUS?

    Dear All,
    I have a simple program that shows a list. My program has AT LINE-SELECTION event. I also use a GUI status for my list.
    When I ran my program and double clicked a line, the AT LINE-SELECTION event was never triggered. Later, I deleted the line that registers the GUI status (SET PF-STATUS.... ). When I ran it again and double clicked a line, the AT LINE-SELECTION was triggered.
    Therefore, I conclude that AT LINE-SELECTION won't be triggered when I use SET PF-STATUS. Is it true?
    If so, is there any way to make my list responds to double click event when I also use GUI status?
    Thanks in advance,
    Haris

    Hi Harris,
    Check this link. I think it will answer your question.
    http://help.sap.com/saphelp_nw04/helpdata/en/9f/dba34635c111d1829f0000e829fbfe/content.htm
    Regards,
    Madhu.

  • SELECT SINGLE & SELECT UPTO 1 ROW

    Dear All,
    I want to optimise the Code performance.
    I don't have full table key. So, what is better to use - SELECT SINGLE or SELECT UPTO 1 ROW?
    Please ASAP.
    Thanks in advance.
    Prasad.

    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.
    Regards
    ANJI

  • Diff between select single * or upto one row

    Hi,
    what is the difference between select single *   and   select upto one row.
    regards
    krishna

    Hi,
    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.
    Regards,
    Bhaskar

  • Tree selection (single selection model) but on 2 panels

    hi..
    here is my problem..
    I have 2 trees each with single selection mode.
    i add them to 2 scrollpanes and add these 2 scrollpanes to a split pane and divided them vertically.
    When i select the tree node in the upper pane the corresponding node is displayed as the root of the tree in lower pane, so far so fine.
    when i select the tree node in the lower pane the tree which was already selected in the upper pane is deselected. while i want that selection to remain..
    help me to solve this..
    thanx in advance..
    K�vi

    you can only have 1 focused component, but trees shouldn't lose selection just cuz they lose focus.... unless you have a custom cell renderer for the tree and you are using the wrong options to paint the cell selection with.

  • Difference bt select single & select up 1 record

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

    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

  • Visual Composer 7.0.1 (EHP1) - Value Help only shows "Single Selection"

    I tried to add a value help to a field that allows multiple selections. However, when I used the wizard through "Add Value Help" drop-down menu, I can only see one proposed selection -  "Single selection". However this SAP help document (http://help.sap.com/saphelp_nw70/helpdata/en/b5/036d391f074f769e00602634ee9960/content.htm) mentioned about the "Multiple selection" option. What I can do to make this selection available?
    I am using VC 7.0.1 (EHP1). Thanks for any helps in advance.
    Kelly

    Hi
    Are you using 'BI Query' as 'data Service'? & are you creating value help for variable? If Yes -
    Create necessary variable as 'Multiple Single Options' in your BEx query & then create value help in VC. Then it will allow multiple options or interval values.
    Regards
    Sandeep

  • Select single * statement

    Hi everyone,
    I have the follwing two codes .The first one works fine but the second one gives me an error.
    Please let me know what is the error.
    1)The below code works fine
    loop at itab.
    select single * from zxyz
                   where zorder = itab-zorder.
    if zxyz-id is initial.
    endif.
    endloop.
    2)This one doesn't work
    select single * from zac
                   where userid = sy-uname.
    if sy-subrc eq 0.
    endif.
    Iam getting this error please let me know
    The INTO clause is missing at select, or the from addition at either DELETE,INSERT,MODIFY OR UPDATE IS MISSING.
    Thanks in advance.
    Deepthi

    Hi Deepthi,
    You must declare either the table or an work area in your program.
    You can do that with either of the below methods:
    1. Tables: ZAC. (or)
    2. Data: w_zac like ZAC.
    Change your select statement to the following when you use the option 2:
    select single *
           from zac
           into w_zac
           where userid = sy-uname.
    Hope this helps.
    Regards,
    Sumant.
    Message was edited by: Sumant Sura

  • Multiple Selection For Selections screen field

    Hi Friends ,
    Can any body tell me how to create multiple selection for a field in selection screen and how to capture all those values of that fields in program for database selction. Suppose i am having document number EBELN from EKKO exists in selectio screen . how to create multiple selection for that and how to use all those values given to EBELN to get data from EKKO.
    Kumar.

    hi,
    select-options is one type of parameters where u can give multiple values in ranges or single as a input. when u use select-options then system will create a selection screen for u and u give multiple values as
    ex:
    select-options: s_ebeln for ekko-ebeln.
    internally system creates a internal for s_ebeln which has for attributes
    1. low --- starting value if  range is used
      2. high -
    ending value
    3. sign -
    operator used for validating field
    4. option -
    to exclude given range of values or single value or to include.
    for this u can assign default values in INITIALIZATION event as
    INITIALIZATION.
    s_ebeln -low = '1'.
    s_ebeln- high = '100-100'.
    s_ebeln-sign = 'BT'.
    s_ebeln-option = 'I' // include
                             'E' // exclude.
    if helpful reward some points.
    with regards,
    Suresh Aluri.

  • How to get selected record details when single selection is used in a table

    Hi All,
    Inside a query region I have created a table using region wizard,for this table I have added a singleSelection Item. What I want is , on selection of a particular record i want to update or view that record in a new page , for this I have added update and view icons in each row.
    But I am unable to get the particular selected record
    OATableBean tableBean = (OATableBean)webBean.findChildRecursive("ResultTableRN");
    OASingleSelectionBean singleSelection = (OASingleSelectionBean)tableBean.getTableSelection();
    For this singleSelection object I was unable to find any method which will give the value of the view attribute associated with it.
    Anybody any suggestions regarding it ?
    Thanks in advance,
    Anant NImbalkar.

    Hi Anant,
    here is how you have to do it
    1) you need to enable PPR on that Singl selection , by changining the Action type =fireAction.
    2) define the envent , EVENT
    3) define paramters for that event. This is place that gives you handle to the Attribute of VO.
    So you can define paremters such
    Name = PARAM1
    value =${oa.EqxContactPrivEOVO1.ContactPrivilegeId}
    You can define as many paramters as you can for the vo field that u wanted to have.
    Now in the procesformRequest() , all you do it handle the event EVENT and get the parameters
    if ("EVENT".equals(pageContext.getParameter(EVENT_PARAM)))
    String accountid= pageContext.getParameter("PARAM1");
    You can refer developer guide for further details.

Maybe you are looking for

  • Work Order - Maintenance Planning plant change

    Hi Gurus, Is there any way to change the maintenance planning plant in a created work order? We are having an issue on work orders and we need to tranfer our open work orders to another plants to solved the issue. Please me let me know if this is pos

  • Java Server Faces

    Hello All, I make an application for online examination system.I face some problem with logout.When we login as a Admin then there is a 1 connection.When we see the candidate report and before coming the report if i logout in between and again we log

  • Need help with an Outer Join

    I have the following query which has an outer join and it works perfectly and shows publication paragraph which don't have any maintenance records with a value of 0. However when I add to the where clause conditions such as lpm.fac_ident and lpm.star

  • Using JSP to stream XML to a Oracle Report .jsp file

    I created some Oracle Reports for a pdf output. Using these reports can I stream a URL XML file to it from a JSP XML read from a database? I would like to use JSP's to read the datbase and then stream the XML to the JSP report (Oracle Report Server).

  • I am making a card game....

    and using Swing for the graphics. First, thanks to all for reading my post and for their help. My problem, is, I can display hands that should be oriented horizontally (North/South, for example) correctly, but I am having difficulties displaying hand