人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

SQL(Oracle)について教えてください。
下記のような商品データがあります。

商品コード,シリーズコード,商品名
1001,1000,ブラビア20
1002,1000,ブラビア25
1003,1000,ブラビア30
1004,1000,BIGブラビア50

同じシリーズで異なる商品コード、商品名をもつデータです。
欲しい結果としては、
シリーズコード,シリーズ名
1000,ブラビア

商品名に共通に現れる「ブラビア」を抜き出す方法を教えてください。

●質問者: wakutan
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:BIG Oracle SQL コード シリーズ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● b-wind
●23ポイント

ストアドプロシジャーでも使えば出来なくは無いかもしれないが、

通常の SQL 文の範囲では無理。

また、仮に行うとしてもDBではなくアプリケーション側で行うべき処理です。


通常この場合、「シリーズコード,シリーズ名」の対応情報を持ったテーブルを別途作成します。

人力検索はてな


2 ● きゃづみぃ
●23ポイント

select * from テーブル名

where

シリーズコード = '1000' and

商品名 like '%ブラビア%

部分一致検索をする場合 like を使います。


http://www.atmarkit.co.jp/fnetwork/rensai/sql01/sql1.html


3 ● hashizo
●22ポイント

SELECT DISTINCT シリーズコード, 商品名 FROM テーブル名;

とすれば、シリーズコード毎に、重複する商品名を除いた形で出力できますが、商品名の共通部分だけを抜き出すのは難しいですね。

手動で作業をするなら、上記の結果を手動で編集するとか。

自動で作業するなら、上記の結果をさらに、

同一シリーズコードを持つ場合、中に含まれる共通の文字列を検索するプログラムを作る必要があると思います。

http://q.hatena.ne.jp/answer


4 ● ikasupa
●22ポイント

SELECT シリーズコード,

CASE WHEN 商品名 LIKE '%ブラビア%' THEN 'ブラビア'

WHEN 商品名 LIKE '%アクオス%' THEN 'アクオス'

ELSE '不明'

END AS シリーズ名

FROM テーブル名

9i以上ならばCASE文を使用してみたらどうでしょうか?

http://oracle.se-free.com/dml/04_if.html

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ