FB 2.5.1.26351 SS
select
'!'||iif(1=1,'','1234567890')||'!' f1,
'!'||iif(1=1,cast('' as varchar(10)),'1234567890')||'!' f2,
'!'||iif(1=1,'',cast('1234567890' as varchar(10)))||'!' f3,
'!'||cast(iif(1=1,'','1234567890') as varchar(10))||'!' f4
from rdb$database
Получается, что без явного задания типа строка считается по дефолту char, а может лучше таки varchar?