Я думаю, вам действительно нужно это
WHERE RIGHT(StudentID,12) LIKE '%' + RIGHT(@StudentID,12) + '%'
Если вам интересно, RIGHT неявно преобразует не varchar данные в varchar. Более правильным способом было бы явное использование CONVERT, но, как вы можете видеть, он длиннее.
WHERE (VARCHAR(20),StudentID) LIKE '%' + CONVERT(VARCHAR(20),@StudentID) + '%'
Как указывает Мартин , LIKE неявно преобразует LHS. Не думаю, что я когда-либо пробовал это так, но это работает
declare @studentid int set @studentid = 205
;with tmp as (select 201102050001 studentid)
select * from tmp
WHERE StudentID LIKE '%' + RIGHT(@StudentID,12) + '%'
-> output: 201102050001