Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kesalahan mengonversi tipe data varchar

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Indeks tidak diterapkan pada Tampilan Terindeks

  2. Bagaimana cara menggunakan kembali pernyataan yang disiapkan dengan benar dan efisien di C# .NET (SQL Server)?

  3. Menggunakan tabel database sebagai antrian

  4. Memperkenalkan Fitur Baru - Replikasi Cloud Spotlight

  5. Windows Azure SQL Database - kolom peningkatan Identitas Otomatis melewatkan nilai