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

Jak odstranit číslice z konce řetězce pomocí SQL

Zdá se, že to funguje:

select left( concat('2Ga4la2009','1'), length(concat('2Ga4la2009','1')) - length(convert(convert(reverse(concat('2Ga4la2009','1')),unsigned),char)))

Concat('myvalue', '1') má chránit před čísly končícími 0s.

Zadní strana jej otočí, takže číslo je vpředu.

Vnitřní převod změní obrácený řetězec na číslo a vypustí koncové znaky.

Vnější převod převede číselnou část zpět na znaky, takže můžete získat délku.

Nyní znáte délku numerické části a můžete určit počet znaků původní hodnoty, které se mají odříznout, pomocí funkce "left()".

Škaredé, ale jde to. :-)



  1. Podporuje PostgreSQL kolace bez přízvuku?

  2. Existuje způsob, jak získat přístup k hodnotě předchozího řádku v příkazu SELECT?

  3. RR vs YY v Oracle

  4. Zastaralé funkce, které je třeba vyjmout ze sady nástrojů – část 2