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

select statements

Former Member
0 Likes
496

Hi Friends,

I have a doubt regarding select statement. i want to know when do we use select*, select upto 1 rows, select single, select distinct, where should we put the data fetched from these statements i.e table or work area in each.

Pl give sample of each case.

Regards,

Quavi.

1 ACCEPTED SOLUTION
Read only

former_member404244
Active Contributor
0 Likes
475

Hi,

when u want to only one record then u will use workarea inorder to put ur data,otherwise if u want more than one record go for internal table

check with examples.

select single * from mara into table wa_mara

where matnr = p_matnr.

select * from mara into wa_mara upto 1 rows

where matnr = p_matnr.

endselect.

select * from mara into table it_mara

where matnr in s_matnr.

Reward if helpful.

Regards,

Nagaraj

3 REPLIES 3
Read only

former_member404244
Active Contributor
0 Likes
476

Hi,

when u want to only one record then u will use workarea inorder to put ur data,otherwise if u want more than one record go for internal table

check with examples.

select single * from mara into table wa_mara

where matnr = p_matnr.

select * from mara into wa_mara upto 1 rows

where matnr = p_matnr.

endselect.

select * from mara into table it_mara

where matnr in s_matnr.

Reward if helpful.

Regards,

Nagaraj

Read only

Clemenss
Active Contributor
0 Likes
475

Hi abdul quavi,

select * will be translated by database interface into a fieldlist of all fields of the databse table fetched from. It is the easiest for coding and does not need any change when database structure changes. But it is quite time and space-consuming because always many non-necessary fields are retrieved and transported.

The destination area may be a work area or an internal table; for table you need addition INTO TABLE.

Use select up to 1 rows if you can not specify the full primary key in WHERE condition but want only one record.

SELECT SINGLE should be used if you can specify the full prinary key in WHERE condition.

You may also look at WIKI, FAQ or GOOGLE. Lots of information avalable.

Regards,

Clemens

Read only

Former Member
0 Likes
475

Hi Abdul,

We use <b>select *</b> when you require all the fields from the table ..

eg: select * from Mara where matnr = ...

<b>select upto 1 rows</b> when dnt have any all primary key values and still u need a record.

eg:select field1 field2 frome mara where matnr = .. upto 1 rows.

<b>select single</b> is used when u require a single field from all the records in that table..

select single mtext from mara where matnr in s_matnr.

we use<b> select distinct</b> when u require the output to be in sorted order ...

eg SELECT DISTINCT (ftab)

FROM spfli

INTO CORRESPONDING FIELDS OF wa

WHERE

carrid = 'LH'.

WRITE: / wa-cityfrom, wa-cityto.

ENDSELECT.