关于#sql case when 只能返回一个值#的问题,如何解决?

sql逻辑问题
首先有一个序列(A,B,C,D,E,F)还有一个变量x。问题是如果x in (A,B,C,D,E,F),返回 x;否则,返回整个序列(A,B,C,D,E,F)。只能在where中来限制
我的想法是
select *
from nige
where x in (case when x in (A,B,C,D,E,F) then x else (A,B,C,D,E,F) end)
由于case when 只能返回一个值,而不能是多个值 (A,B,C,D,E,F)所以有报语法错误,想请教各位有什么好的方法可以解决?

你是什么数据库?

我们不说语法错误的事
就假设我们修改了语句之后没有语法错误了
问题是select返回一个表
表的列数是固定的
而你每行的值个数不固定,有的1个有的6个
你让它怎么显示呢

不知道是不是这意思,可以试试看

SELECT  *from table  where 1=1 
and CASE  (SELECT   sum(find_in_set('x', coum))  from table)=1
WHEN 1 THEN
         coum ='x'
    ELSE
        1=1
END 
;