この質問にはデータベース固有の回答があります。
SQL Serverを使用している場合:
SELECT column1
, RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) as extracted
, column3
FROM myTable
CASE
を追加できます ステートメントまたはNULLIF()
を使用します ハイフンが常に存在するとは限らない場合:
SELECT column1
, CASE WHEN column2 LIKE '%-%' THEN RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1)
END as extracted
, column3
FROM myTable
または:
SELECT column1
, RIGHT(column2,NULLIF(CHARINDEX('-',REVERSE(column2)),0)-1) as extracted
, column3
FROM myTable
MySQLを使用している場合は、CHARINDEX()
を変更するだけです。 LOCATE()
へ 。 OracleはINSTR()
だと思います 最初の2つのパラメータが入れ替わります。最初は検索している文字列で、次に検索している文字列です。