sql >> Databasteknik >  >> RDS >> Sqlserver

Fel vid konvertering av datatypen varchar

OK. Jag skapade äntligen en vy som fungerar:

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

Tack vare AdaTheDev och CodeByMoonlight . Jag använde dina två svar för att komma till detta. (Tack till de andra svararna också såklart)

Nu när jag gör joins med andra bigint-kolumner eller gör något som "SELECT * FROM MyView där mycol=1" returnerar det korrekt resultat utan fel. Min gissning är att CAST i själva frågan gör att frågeoptimeraren inte tittar på den ursprungliga tabellen som Christian Hayter sa kan pågå med de andra vyerna



  1. Hur väljer jag flera värden i samma kolumn?

  2. PHP - problem med kapslade mysql_fetch_array() som gör mig galen

  3. Om MYSQL är skiftlägesokänslig, hur fungerar det för fältet Lösenord i inloggning?

  4. Varning:mysqli_error() förväntar sig exakt 1 parameter, 0 given