sql >> データベース >  >> RDS >> Sqlserver

SQLServerでサブストリングを取得する

    reverseを使用できます substringと一緒に およびcharindex 探しているものを入手するには:

    select
        reverse(substring(reverse(filename), 1, 
            charindex('.', reverse(filename))-1)) as FileExt
    from
        mytable
    

    複数の.がある場合でも、これは維持されます。 ファイル内(例:-hello.world.exe exeを返します 。

    だから私はこれで少し遊んでいました、そしてこれは別の方法です(reverseへの1回の呼び出しだけ ):

    select 
        SUBSTRING(filename, 
            LEN(filename)-(CHARINDEX('.', reverse(filename))-2), 8000) as FileExt
    from
        mytable
    

    これにより、25秒で10,000,000行が計算されますが、前者の方法では29秒でした。



    1. 最大限のデータ保護のための完全なMariaDB暗号化の保管中および転送中-パート2-

    2. SQLite JSON_TREE()

    3. SQLServerで「パーティションスキーム「…」に次に使用されるファイルグループがない」を修正する方法

    4. SQLAlchemy1つのマップされたクラスの複数の外部キーを同じ主キーに