sql >> データベース >  >> RDS >> Sqlserver

データ型varcharの変換中にエラーが発生しました

    わかった。私はついに機能するビューを作成しました:

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

    AdaTheDevに感謝します およびCodeByMoonlight 。私はこれに到達するためにあなたの2つの答えを使用しました。 (もちろん他の返信者にも感謝します)

    これで、他のbigint列と結合したり、「SELECT * FROM MyView where mycol =1」のようなことをしたりすると、エラーなしで正しい結果が返されます。私の推測では、クエリ自体のCASTにより、クエリオプティマイザは元のテーブルを参照しません。これは、ChristianHayterが他のビューで実行されている可能性があると述べたためです



    1. MySQLテーブル名に日付を追加するにはどうすればよいですか?

    2. MySQLでのUDFパフォーマンス

    3. 個別のテーブルが必要な場合、どのようにしてわかりますか?

    4. Mysql-UNIXタイムスタンプから年を選択