If it were me who was assigned this task, I would first find the ascii values (this can probably be done much more slick, but this works):
Find ascii values
with cte1
as (select max(len(membership_name)) as maxlen
from yourtable
)
,cte2
as (select b.n
from cte1 as a
cross apply(select row_number() over(order by (select null)) as n
from (values(0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) as cte2_1(n) /* 10 chars */
cross apply (values(0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) as cte2_2(n) /* 100 chars */
cross apply (values(0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) as cte2_3(n) /* 1000 chars */
) as b
where b.n<=a.maxlen
)
select substring(a.membership_name,b.n,1) as letter
,ascii(substring(a.membership_name,b.n,1)) as letter_value
from yourtable as a
cross apply cte2 as b
where a.membership_name is not null
and b.n<=len(a.membership_name)
group by substring(a.membership_name,b.n,1)
,ascii(substring(a.membership_name,b.n,1))
order by letter_value
;
Then I would look thru the results of the above query, and find the "letter_value" in question, and it is then "easy-peacy" finding the rows (in this ex. I look for value 65 which is the letter A):
Find rows
select *
from yourtable
where membership_name like '%'+char(65)+'%'
;