sql >> Databáze >  >> RDS >> Mysql

Jak sečíst řetězec oddělený čárkou v SQL?

S velkým úsilím to dokážete. Ve skutečnosti je to však velmi, velmi špatný způsob ukládání dat.

V duchu toho, že někdy musíme používat data, jejichž formát není pod naší kontrolou:

select id,
       (substring_index(value, ',', 1) +
        substring_index(substring_index(concat(value, ',0'), ',', 2), ',', -1) +
        substring_index(substring_index(concat(value, ',0'), ',', 3), ',', -1) +
        substring_index(substring_index(concat(value, ',0'), ',', 4), ',', -1) +
        substring_index(substring_index(concat(value, ',0'), ',', 5), ',', -1)
       ) as thesum
from t;

Vnořené volání substring_index() načte n-tou hodnotu v řetězci. concat(value, ',0') je zvládnout případ, kdy existuje méně hodnot než výrazů. V tomto případě vnořený substring_index() vrátí poslední hodnotu pro jakoukoli hodnotu o n větší, než je počet položek v seznamu. Zřetězení 0 do seznamu zajistí, že to neovlivní součet.

SQL Fiddle je zde .



  1. Velikost vzorku a doba trvání AKTUALIZACE STATISTIKY:Záleží na tom?

  2. Proč používat Select Top 100 Percent?

  3. Hodnoty oddělené čárkami v Oracle

  4. Primární klíč SQL