OKE. Saya akhirnya membuat tampilan yang berfungsi:
SELECT TOP (100) PERCENT id, CAST(CASE WHEN IsNumeric(MyCol) = 1 THEN MyCol ELSE NULL END AS bigint) AS MyCol
FROM dbo.MyTable
WHERE (MyCol NOT LIKE '%[^0-9]%')
Terima kasih kepada AdaTheDev dan CodeByMoonlight . Saya menggunakan dua jawaban Anda untuk mencapai ini. (Terima kasih kepada penjawab lainnya juga tentunya)
Sekarang ketika saya bergabung dengan cols bigint lain atau melakukan sesuatu seperti 'SELECT * FROM MyView where mycol=1' ia mengembalikan hasil yang benar tanpa kesalahan. Dugaan saya adalah bahwa CAST dalam kueri itu sendiri menyebabkan pengoptimal kueri tidak melihat tabel asli seperti yang dikatakan Christian Hayter mungkin terjadi dengan tampilan lain