as a single string in the IN list. Try putting all the individual strings in an array and writing a UDF “contains_string” to loop through it and return true/false if the desired string is there
Or, if you really want that condition to be in SQL, not in procedural statements in an SP, you could use dynamic SQL (executed immediate).
If the list of valid countries has several values, as you show, I would put them in a table. Then you can do something like this:
SELECT CASE WHEN EXISTS(SELECT *
FROM tblValidCountries WHERE Country = var_valid_country) THEN 'Y'
ELSE 'N'
END;
This way, if the list of valid countries ever changes, you can update a table, versus a code change. And depending on how you use the procedure upstream, you might be able to use that EXISTS function in line and avoid having a separate procedure.
If you do use a separate procedure or function, consider returning a boolean value, since that’s what you are logically coming up with anyway.