You don't really need a CASE statement here, unless I've missed something. (Always possible.)
select count(RoleID)
from roles
where RoleDescEN = 'EnglishName'
or RoleDescAR = 'ArabicName';
If you're trying to identify persons who have those roles, you might be looking for something along these lines.
create table roles (
RoleID integer primary key,
RoleDescEN varchar(30) ,
RoledescAR varchar(30)
);
insert into roles values
(1, 'EnglishName', null),
(2, null, 'ArabicName'),
(3, 'EnglishName', null),
(4, 'EnglishName', null),
(5, null, 'ArabicName'),
(6, null, 'ArabicName'),
(7, null, 'OtherName');
create table persons (
person_id integer primary key,
person_name varchar(35) not null,
person_role integer references roles (RoleID)
);
insert into persons values
(1, 'Obama, Barak', 1),
(2, 'Obama, Michelle', 2),
(3, 'Biden, Joe', 7);
I would not be surprised if my tables don't match yours. In your question, always include CREATE TABLE statements and INSERT statements to get the best answers.
select *
from persons p
inner join roles r
on r.RoleID = p.person_role
where RoleDescEN = 'EnglishName'
or RoleDescAR = 'ArabicName';