Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Lỗi khi chuyển đổi kiểu dữ liệu varchar

ĐƯỢC RỒI. Cuối cùng tôi đã tạo một chế độ xem hoạt động:

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]%')

Cảm ơn AdaTheDev CodeByMoonlight . Tôi đã sử dụng hai câu trả lời của bạn để đạt được điều này. (Tất nhiên cũng cảm ơn các đại diện khác)

Bây giờ khi tôi tham gia với các cols bigint khác hoặc làm điều gì đó như 'CHỌN * TỪ MyView nơi mycol =1', nó trả về kết quả chính xác mà không có lỗi. Tôi đoán là CAST trong chính truy vấn khiến trình tối ưu hóa truy vấn không nhìn vào bảng gốc như Christian Hayter đã nói có thể đang xảy ra với các chế độ xem khác



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xuất Dữ liệu Máy chủ SQL thành tệp CSV

  2. Cách tốt nhất để viết hoa chữ cái đầu tiên của mỗi từ trong một chuỗi trong SQL Server là gì

  3. Logic báo cáo sổ cái trong quy trình được lưu trữ

  4. Khó khăn khi viết Stored Proc để tìm nạp dữ liệu cho Jqgrid Pagination

  5. Chỉ xóa các bản ghi cũ hơn 50 hàng trong khi nhóm theo 1 cột