Dynamic where clause

data: lv_fields type string,
      lv_clause type string,
      lv_tablename type string,
      lt_results TYPE TABLE OF matnr.

lv_tablename = 'MARA'.
lv_fields = 'MATNR'.
lv_clause = 'MTART = ''FERT'' AND MBRSH = ''A'''.

SELECT (lv_fields) FROM (lv_tablename)
  INTO TABLE lt_results
  UP TO 20 rows
  WHERE (lv_clause).