10秒目をつむったら…

はじめまして。
この質問に関連する内容につきまして、ご回答を頂けたのですが
以下の事項につきまして、追加で質問させて頂きたく存じます。

【過去の質問】
>SQLにて、”指定の文字「-」を検索し、先頭から「-」のひとつ前までを取得”を実現したいのですが、
>これは実現できますでしょうか。(substrやinstrなどでは無理そうなので、お知恵お借りしたいです。)
>
>例)
>01234567-001
>0123456-001
>012345-001
>0123456789-001
>
>上記に対して、期待する実行結果は次の通りです。
>01234567
>0123456
>012345
>0123456789

【ご回答】
>select substr(col, 1, instr(col, '-') - 1)
>from tbl;
>でいいのではないでしょうか。
>'-'が含まれていない場合はnullが返りますので、そのあたりの制御が必要であれば適宜修正してください。


★追加質問内容
上記のcolがNULL('-'が含まれない)場合に、colのそのままの値を出力という形にすることは可能でしょうか。

例)
01234567-001
0123456-001
012345-001
0123456789-001
0123456  ←
111345   ←

上記に対して、期待する実行結果は次の通りです。
01234567
0123456
012345
0123456789
0123456  ←
111345   ←

お手数ですが、ご教示のほど宜しくお願い致します。

A 回答 (2件)

select case when instr(col, '-') > 0 then substr(col, 1, instr(col, '-') - 1) else col end


from tbl;
ですかね。
    • good
    • 0
この回答へのお礼

お返事が遅くなりまして、大変申し訳ございません。
意図通りに動作致しました。ありがとうございます!

お礼日時:2014/04/14 21:06

>【過去の質問】


http://oshiete.goo.ne.jp/qa/8546719.html
こちらですよね?追加で回答していたのですが、ご覧になっていないのでしょうか?

No.1さんと同様の回答ではありますが。
    • good
    • 0
この回答へのお礼

お返事が遅くなりまして、大変申し訳ございません。
また、同一内容の質問を別個であげてしまい、失礼いたしました。
2つ目の質問を補足に記載してしまったため、不安になり別個に質問をあげてしまいました。
いただいた内容で意図通りに動作いたしました。
非常に助かりました。ありがとうございました。

お礼日時:2014/04/14 21:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す