sql >> Database teknologi >  >> RDS >> Sqlserver

Fejl ved konvertering af datatype varchar

OKAY. Jeg har endelig oprettet en visning, der virker:

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

Tak til AdaTheDev og CodeByMoonlight . Jeg brugte dine to svar til at komme til dette. (Tak til de andre besvarere selvfølgelig)

Når jeg nu gør joins med andre bigint cols eller gør noget som 'SELECT * FROM MyView hvor mycol=1' returnerer det det korrekte resultat uden fejl. Mit gæt er, at CAST'en i selve forespørgslen får forespørgselsoptimeringsværktøjet til ikke at se på den originale tabel, som Christian Hayter sagde, muligvis foregår med de andre visninger



  1. Opret en ny database med MySQL Workbench

  2. Sådan implementeres php-mysql datapaginering ved hjælp af dataudbydere

  3. MariaDB JSON_SET() Forklaret

  4. Hvordan formaterer man dato fra tidsstempel i PHP?