C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[2]: SQL:文字列変換処理について
(過去ログ 46 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 5 記事 (1 - 5 表示)] <<
0
>>
■24830
/ inTopicNo.1)
SQL:文字列変換処理について
▼
■
□投稿者/ hana
(30回)-(2008/09/10(Wed) 16:16:52)
分類:[データベース全般]
いつもお世話になっております。
SQL文について質問させていただきます。
SQLのreplace() 関数を用いて、文字列を変換する処理を作成しております。
例)select replace('a0a1a2', 'a0', 'b1') from dual →この場合の結果は「b1a1a2」となる
【やりたいこと】
変換対象文字列の中に同じ文字列が複数含まれる場合は
初めの1つだけを変換したいのですが、
上記例の通りに行うと
'a0'は全て'b1'に変換されてしまいます。
※select replace('a0a1a2a0', 'a0', 'b1') from dual の場合、
結果は「b1a1a2b1」となるが「b1a1a2a0」と変換したい。
replace() 関数では不可能でしょうか?
実現方法をご存知の方、ご教授をよろしくお願い致します。
引用返信
編集キー/
編集
■24832
/ inTopicNo.2)
Re[1]: SQL:文字列変換処理について
▲
▼
■
□投稿者/ みきぬ
(76回)-(2008/09/10(Wed) 16:36:47)
とりあえずデータベース名とバージョンを聞こう。話はそれからだ。
…たぶん、SQLのReplace関数では無理だと思う。
取得してからプログラム側で置換するのが手っ取り早そう。
引用返信
編集キー/
編集
■24833
/ inTopicNo.3)
Re[2]: SQL:文字列変換処理について
▲
▼
■
□投稿者/ hana
(31回)-(2008/09/10(Wed) 16:48:19)
■
No24832
(みきぬ さん) に返信
> とりあえずデータベース名とバージョンを聞こう。話はそれからだ。
>
> …たぶん、SQLのReplace関数では無理だと思う。
> 取得してからプログラム側で置換するのが手っ取り早そう。
返信、ありがとうございます。
データベースは、「Oracle 10g Standard Edition One CPU ライセンス」を使用しております。
よろしくお願い致します。
引用返信
編集キー/
編集
■24834
/ inTopicNo.4)
Re[1]: SQL:文字列変換処理について
▲
▼
■
□投稿者/ 魔界の仮面弁士
(843回)-(2008/09/10(Wed) 16:59:23)
■
No24830
(hana さん) に返信
> 例)select replace('a0a1a2', 'a0', 'b1') from dual →この場合の結果は「b1a1a2」となる
DUAL ということは Oracle かな。であれば、こんな感じ。
SELECT REGEXP_REPLACE( 'a0a1a2a0a1a2', 'a0', 'b1', 1, 1, 'c') FROM DUAL
# 10g以降のみ。9i以下では使えません。
引用返信
編集キー/
編集
■24835
/ inTopicNo.5)
Re[2]: SQL:文字列変換処理について
▲
▼
■
□投稿者/ hana
(32回)-(2008/09/10(Wed) 17:15:43)
■
No24834
(魔界の仮面弁士 さん) に返信
> ■
No24830
(hana さん) に返信
>>例)select replace('a0a1a2', 'a0', 'b1') from dual →この場合の結果は「b1a1a2」となる
>
> DUAL ということは Oracle かな。であれば、こんな感じ。
>
> SELECT REGEXP_REPLACE( 'a0a1a2a0a1a2', 'a0', 'b1', 1, 1, 'c') FROM DUAL
>
> # 10g以降のみ。9i以下では使えません。
ご教授頂いた関数REGEXP_REPLACE()で、できました。
なるほど、REGEXP_REPLACE()関数は置換回数を指定できるのですね。
文字解析して置換しなければならないかなと思っていたので、便利な関数があって助かりました。
本当に、ありがとうございました。
解決済み
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-