Skip to content

ABAP Keyword Documentation →  ABAP - Dictionary →  ABAP CDS in ABAP Dictionary →  ABAP CDS - Data Definitions →  ABAP CDS - DDL for Data Definitions →  ABAP CDS - DEFINE VIEW 


Other versions: 7.31 | 7.40 | 7.54


 SELECT [DISTINCT] { select_list 
                    FROM data_source
                    [association1 association2 ...] }
                | { FROM data_source
                    [ association1 association2 ...]
                    {select_list} }


The SELECT statement defines a query performed on the data sources specified in data_source for a CDS view, as part of the statement DEFINE VIEW. Possible data sources are database tables defined in ABAP Dictionary, database views, or other CDS views.

  • DISTINCT removes duplicates from the results list. If DISTINCT is specified, the elements cannot have the type LCHR, LRAW, STRING, RAWSTRING, or GEOM_EWKB.

Both forms of the code have the same semantics. Curly brackets { } must be used in the second variant to set select_list.

The optional additions clauses are SELECT clauses that enable conditions, groupings, and union sets to be specified or created.


The CDS view business_partner_role defined here is a view of an existing CDS view business_partner. An element bp_role is defined in the SELECT list and given the comment Business partner role. Any duplicate values of the element are removed using DISTINCT.

@AbapCatalog.sqlViewName: 'BPA_ROLE_VW'
define view business_partner_role as
  select distinct
         from business_partner
         { business_partner.role //Business partner role

The CDS view business_partner_role can be addressed in ABAP programs using ABAP SQL, for example:

SELECT * FROM business_partner_role INTO TABLE @itab ...

The addition DISTINCT of SELECT is no longer needed in this case.


ABAP CDS - SELECT, data_source


ABAP CDS - SELECT, select_list

ABAP CDS - SELECT, clauses

ABAP CDS - SELECT, Operands and Expressions

ABAP CDS - SELECT, Built-In Functions