DECLARE @INPUT varchar(100) = '@*# c %^&# a ^&*$&* t (*&(%!@#$'
DECLARE @Index int = 1,
@CurrentChar char(1),
@Like varchar(100),
@NotLike varchar(100) = '%'
WHILE @Index < LEN(@Input)
BEGIN
SET @CurrentChar = SUBSTRING(@INPUT, @Index, 1)
IF PATINDEX('%[^a-zA-Z0-9]%', @CurrentChar) = 0
BEGIN
SET @NotLike = @NotLike + @CurrentChar + '%[a-zA-Z0-9]%'
END
SET @Index = @Index + 1
END
SELECT @NotLike = LEFT(@NotLike, LEN(@NotLike) - 12),
@Like = REPLACE(@NotLike, '%[a-zA-Z0-9]%', '%')
SELECT *
FROM @T
WHERE a LIKE @Like
AND a NOT LIKE @NotLike