Предложение FETCH FIRST не может использовать выражение, как вы нашли. Он принимает только неотрицательное целое число.
Нет красивого способа сделать это, но это возможно с помощью функций OLAP. Они могут отсутствовать в вашей версии DB2 (если вы используете DB2 для Linux / UNIX / Windows, то они, вероятно, есть).
Предполагается, что в вашей таблице есть столбцы email и имя:
with pull as (
select
email,
name,
rownumber() over(order by email) as row,
count(email) over () as cnt
from
email_list
)
select
email,
name
from
pull
where
row <= cnt/2;
Это может не очень хорошо работать; и на самом деле может быть эффективнее просто выполнить 2 запроса: один - подсчет, а другой - выбор нужного количества строк, которые вас интересуют.