sql >> Database >  >> RDS >> Sqlserver

Conversie mislukt bij het converteren van de varchar-waarde 'simple' naar gegevenstype int

Om een ​​dergelijke fout te voorkomen, kunt u CASE . gebruiken + ISNUMERIC om scenario's af te handelen wanneer u niet kunt converteren naar int.
Wijzigen

CONVERT(INT, CONVERT(VARCHAR(12), a.value))

Naar

CONVERT(INT,
        CASE
        WHEN IsNumeric(CONVERT(VARCHAR(12), a.value)) = 1 THEN CONVERT(VARCHAR(12),a.value)
        ELSE 0 END) 

In feite zegt dit dat als je me niet kunt converteren naar int, een waarde van 0 toewijzen (in mijn voorbeeld)

U kunt ook dit artikel bekijken over het maken van een aangepaste functie die controleert of a.value is nummer:http://www.tek-tips.com/faqs.cfm?fid=6423



  1. Hoe MOD() werkt in MariaDB

  2. Nextcloud 15 installeren op Ubuntu 18.04

  3. Hoe u de datum van gisteren in T-SQL kunt krijgen

  4. Paginering in SQL Server met OFFSET/FETCH