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

jak aktualizovat pouze první znak v SQL Server

Vzhledem k tomu, že známe rozsah hodnot od 0 do 9999, dotaz by mohl vypadat takto:

update MyTable
set No1 = CASE WHEN No1 between 10 and 19     THEN No1 - 10
               WHEN No1 between 100 and 199   THEN No1 - 100
               WHEN No1 between 1000 and 1999 THEN No1 - 1000 END
where No1 between 10 and 19    
   or No1 between 100 and 199  
   or No1 between 1000 and 1999

Pokud se spouští opravdu často, možná se budete muset podívat na přidání vhodných indexů a tak dále, ale rychlý test naznačuje, že to není tak špatné.



  1. Závažná chyba PHP:Volání nedefinované funkce mssql_connect()

  2. Snažím se extrahovat sloupec XMLTYPE z tabulky Oracle pomocí JDBC a mám nějaké problémy

  3. Mazání záznamů před určitým datem

  4. Optimalizace dotazů pro další a předchozí prvek