2017-08-22 20 views
-2

誰かが苦労しているSQLを手伝ってくれる人がいますか?文字列の最後の3文字を選択するSQL

ファイル名を含むフィールドの最後の3文字を選択する必要があります(そのため、上記のファイルの拡張子を取得できます)。理想的には、これらの値を数えたいと思います。

文字列の最初の3文字を選択するのは簡単ですが、最終3を選択する方法がわかりません。ファイル名の長さはすべて異なります。

ありがとうございます。

+1

使用しているデータベースで質問にタグを付けてください。 –

+2

あなたは 'RIGHT(YourString、3)'のようなものを意味していますか? – Lamak

+0

いいえ私は彼が "sql"、 "string"、 "count"をどのように追加したかのようなタグを追加すると思います。 – devnation

答えて

3

二つの一般的な方法は以下のとおりです。

select right(filename, 3) 
select substr(filename, -3) 

しかし、私はいないすべてのファイル名は3つの文字を持っていることを警告します。私はあなたが使用しているファイル名の詳細と例について、別の質問をすることをお勧めします。

+0

ゴードンさん、ありがとうございました。 – b0redj0rd

0

ファイル拡張子が3文字だけでなく、他の場所にピリオドがない場合。

declare @somefile varchar(64) = '/server/folder/sub_folder/file.extension' 

select 
    substring(@somefile,charindex('.',@somefile) + 1,99) 

ファイルパスにピリオドがありますが、賢明ではありません。

declare @somefile varchar(64) = '/ser.ver/fo.lder/sub.folder/file.extension' 

select 
    right(@someFile,charindex('.',reverse(@somefile)) - 1) 
関連する問題