• My guess is there's probably a better way to formulate the problem you're trying to solve so that this isn't required, but for the sake of argument, lets say that it is. If doing it outside of SQL is not an option, I'd split out all the string (in this case, characters) you want to check into their own table.

    Then join that table of strings to check to the set of stuff you want to validate. If you just wanted to check existance, the join itself would be sufficient. But if you also need a string containing those characters, you could use FOR XML to concatenate the strings you found back into a coherant string.

    This code assumes you have a string splitting function called dbo.SplitStrings_CLR. If you don't, any string splitting funciton will work, so long as it gets the characters you want into @StringsToCheck.

    --Set up a table of the strings (in your case, just CHARACTERS) you want to chek for

    declare @StringsToCheck table

    (

    String varchar(30) primary key clustered

    )

    --Represents the table you want to search strings for

    declare @ValidationSet table

    (

    CheckedString varchar(500)

    )

    --Replace this with whatever you need to insert each string into @StringsToCheck

    --

    insert into @StringsToCheck (String)

    select Item

    from dbo.SplitStrings_CLR('A,C,D,I,P,F,J,Z', ',')

    -- Populate sample data you want to check

    insert into @ValidationSet(CheckedString)

    values ('PFAG'),('ABCDEFHJMPUYZ'),('KML'),('JC'),('RFP')

    ;with t as

    (

    select a.String,b.CheckedString

    from @StringsToCheck a

    inner join @ValidationSet b

    on b.CheckedString like '%' + a.String + '%' --This checks if the string appears anywhere in b.CheckedString

    --Note this CANNOT make use of indexes

    )

    --Re-concatenate the found characters into a coherant string

    select

    checkedString,

    (select string + ''

    from t i --Inner

    where i.CheckedString = o.CheckedString

    for xml path('')) as CoherantString

    from t o --outer

    group by checkedString

    Note that this probably doesnt scale up very well, but if thats an issue, again, there may be a completely different way to attack whatever it is you're trying to do.

    Executive Junior Cowboy Developer, Esq.[/url]