sql >> Databáze >  >> RDS >> Sqlserver

Konverze se nezdařila při převodu hodnoty varchar 'simple,' na datový typ int

Chcete-li se takové chybě vyhnout, můžete použít CASE + ISNUMERIC pro zpracování scénářů, kdy nemůžete převést na int.
Změnit

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

Komu

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

V podstatě to znamená, že pokud mě nemůžete převést na int, přiřaďte hodnotu 0 (v mém příkladu)

Případně se můžete podívat na tento článek o vytvoření vlastní funkce, která zkontroluje, zda a.value je číslo:http://www.tek-tips.com/faqs.cfm?fid=6423



  1. Může se JavaScript propojit s MySQL?

  2. Skupiny dostupnosti SQL Server AlwaysOn:Instalace a konfigurace. Část 2

  3. Exportujte celou databázi SQLite do souboru SQL

  4. Jak zkontrolovat stav serveru v MySQL Workbench pomocí GUI