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

Dotaz pomocí odvozené tabulky s ISNUMERICKÝM výsledkem vede k selhání převodu (varchar to int)

WHERE klauzule se provádí jako první. Zkuste:

DECLARE @table table (loc varchar(10)) 

INSERT INTO @table VALUES 
('134a'), ('123'), ('abc'), ('124') 

SELECT *  
FROM ( 
    SELECT * FROM @table
) as a 
WHERE ISNUMERIC(loc) = 1 and CAST(loc as INT) BETWEEN 100 AND 200 



  1. SELECT SUM vrátí řádek, pokud neexistují žádné záznamy

  2. Sloučit 2 pole a sečíst hodnoty (numerické klíče)

  3. Lze INSERT [...] ON CONFLICT použít pro porušení cizího klíče?

  4. použijte proměnnou v příkazu FROM