WHERE PATINDEX ('%pattern%',expression) !=0
Se o padrão for encontrado, PATINDEX retornará um valor diferente de zero e você precisará fazer uma comparação na cláusula WHERE.A
WHERE
A cláusula deve ser seguida por uma operação de comparação que retorna verdadeiro/falso.Pode ser que você esteja usando PATINDEX sem fazer a comparação e é por isso que a mensagem de erro mostra uma expressão não booleana perto da cláusula WHERE.
Para pesquisar o padrão leaner_code com caractere curinga
WHERE PATINDEX ('%' + CAST(learner_code AS VARCHAR) +'%',examCodes) !=0