‎2006 Sep 12 2:18 PM
I want to select a set of records from a table in which one of the field entries should start with 'XY-----'. How to do this?
Reagards,
ABAPer
‎2006 Sep 12 2:21 PM
Hi,
Try this:
select field1 field2 field3 field4 from ztable into itab where field like 'XY%'.
Regards,
Vivek
‎2006 Sep 12 2:19 PM
Hi
Select <field list>
into <internal table>
from <table>
where <b>field like 'XY%</b>'.
Regards,
Raj
‎2006 Sep 12 2:21 PM
Hi,
Try this:
select field1 field2 field3 field4 from ztable into itab where field like 'XY%'.
Regards,
Vivek
‎2006 Sep 12 2:21 PM
CP (Contains Pattern):
The complete string c1 matches the pattern c2 (c1 "matches" c2).
The pattern c2 can contain ordinary characters and wildcards.
'*' stands for any character string and '+' denotes any character.
If the result of the comparison is positive, the system field SY-FDPOS contains the offset of the first character of c2 in c1. The wildcard character '*' at the beginning of the pattern c2 is ignored when determining the value of SY-FDPOS.
If the result of the comparison is negative, the system field SY-FDPOS contains the length of c1.
Examples:
'ABCDE' CP 'CD' is true; SY-FDPOS = 2.
'ABCDE' CP '*CD' is false; SY-FDPOS = 5.
'ABCDE' CP '+CD' is true; SY-FDPOS = 0.
'ABCDE' CP '+CD*' is false; SY-FDPOS = 5.
'ABCDE' CP 'BD*' is true; SY-FDPOS = 1.
The character '#' has a special meaning. It serves as an escape symbol and indicates that the very next character should be compared "exactly".
This allows you to search for:
- characters in upper or lower case
e.g.: c1 CP '#A#b'
- the wildcard characters '*', '+' themselves
e.g.: c1 CP '#' or c1 CP '#+*'
- the escape symbol itself
e.g.: c1 CP '##'
- blanks at the end of c1
e.g.: c1 CP '*# '
If c2 does not contain the wildcard character '*', the shorter field is padded with "soft blanks" to bring it up to the length of the longer field.
Examples:
'ABC' CP 'ABC ' is true,
'ABC ' CP 'ABC' is true,
but
'ABC' CP 'ABC+' is false,
'ABC' CP 'ABC# ' is false,
because a "soft blank" is neither any character ('+') nor a "real" blank ('# ').
The escape symbol does not affect the length of f2 ('A#a#B' still has the length 3).
The comparison is not case-sensitive.
‎2006 Sep 12 2:22 PM
Hi,
Plz try out below codings.
select * from BKPF into table t_bkpf where
bukrs = s_bukrs
and BVORG = XY%
use XY and percentage symbol.
Regards
Divakar
‎2006 Sep 12 2:22 PM
one option is using LIKE statement.
another option is to use
ranges.
r_matnr-low = 'XY*'.
R_MATNR-OPTION = 'CP'.
R_MATNR-SIGN = 'I'.
APPEND R_MATNR.
SELECT *
FROM <TABLE>
INTO TABLE <ITAB>
WHERE MATNR IN R_MATNR.
Regards,
Ravi
‎2006 Sep 12 2:39 PM
HI ,
check the following code.
DATA : BEGIN OF itab OCCURS 0,
matnr TYPE matnr,
werks TYPE werks_d,
END OF itab.
SELECT matnr werks FROM marc INTO TABLE itab
WHERE matnr LIKE '15%'.
LOOP AT itab.
WRITE 😕 itab-matnr,itab-werks.
ENDLOOP.
in place of 15% use XY%.
regards,
Nagaraj
‎2006 Sep 12 7:23 PM
Hi,
If you know the case of the value you are looking for, then Vivek M's solution can be used.
I personally don't know a way to transparently select text of unknown upper/lower case from the data dict. tables (vrs 4.7)
Rgrds,
Dan Perecky