SQLで一部の文字列を取得する方法

SQLで一部の文字列を取得するにはSUBSTR関数やLEFT関数、RIGHT関数を使用することで可能となります。DBMS毎に利用できる関数に違いがありOracleではLEFT関数、RIGHT関数は使用出来ません。

関数\DBMSMySQLPostgreSQLSQL ServerOracle
SUBSTR or SUBSTRING
LEFT
RIGHT
 

サンプルテーブル

  • 「goods」テーブル

SUBSTR関数の使用例

LEFT関数の使用例

RIGHT関数の使用例

Excel:自動で連番を振る方法

Excelで連番を振る方法はいくつかあるのでメモしておきます。

【方法1】セルの右下を選択してそのままCtrlキー押下したままドラッグする方法

  1. 最初に1など数値を入力しておき、そのセルの右下の小さな■マークをマウスポインタで選択します。
  2. Ctrlキーを押下したまま連番を振りたい方向にドラッグすると連番が自動的に振られます。セルの書式が標準や数値ならCtrlキーの押下が必要となり、書式が文字列ならCtrlキーの押下は不要です。

【方法2】ROW()関数を使用する方法

  • 連番を振りたいセルに「=ROW()」関数を指定することで該当セルの行番号に相当する数値を表示できます。ただROWだけではシートの3行目に指定すると「3」と表示されてしまうので、途中から連番振りたい場合には開始連番が1になるように「=ROW()-2」などとするケースが多いです。以下の例ではA2セルの書式に「=ROW()-1」と設定しています。

【方法3】ROW()関数を応用して使用する方法

  • 方法2では連番設定したあとに上の行に行追加や行削除すると開始連番がずれてしまうというデメリットがあります。その都度マイナスする値を変更するのは面倒なので行追加や行削除されても連番が変わらないようにする方法がROW() からマイナスする値を開始行のセル番号を固定指定して+1する方法です。以下の例ではA2セルの書式に「=ROW()-ROW($A$2)+1」と入力しています。この指定方法であればA2セルをそのまま他の行へコピペしても連番はインクリメントされて連番表示され、行追加や行削除されても連番はそのままで維持出来るので個人的にこの方法を愛用してます。