![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_02.png?e8efa67)
失礼します。
PL/SQLについて、初歩的な質問をさせてください。
DBに以下のような文字列が入っていて、
それを抽出し変数にセットするとします。
A'1234567'→変数aにセット
B' 12A345B'→変数bにセット
質問1
Aの文字列を取得した際、'123-4567'のように
間にハイフンを付けて変数aにセットする場合
どのようなPL/SQLの記述になりますか?
質問2
Bの文字列を取得した際、'12345'のように
左側の空欄と数字以外の文字を取り、
なおかつ数字を半角にして変数bにセットする場合
どのようなPL/SQLの記述になりますか?
お手数お掛けしますが
ご回答宜しくお願いします。
No.1ベストアンサー
- 回答日時:
おはようございます。
1.は既に解決済みかもしれませんが。
1.
a := SUBSTR(A,1,3) || '-' || SUBSTR(A,4,4);
※3文字と4文字に区切る場合
2.
左側の空欄を取るのであれば、関数がありますので、以下で可能です。
b := LTRIM(B);
が、
・数字以外の文字を取る
・半角にする
関数はないと思いますので、何かしらのロジックを考える必要があるのではないでしょうか。
例えばですが、
REPLACE('A','')
と、'A'をNULLに置換することができると思いますが、それを、考えられる文字列全てに対して行います。
そのロジックを、関数にしてしまうことも手だと思います。
No.2
- 回答日時:
質問2:
無理やり感が漂っていますが、こんな感じでできました。
select LTRIM(TRANSLATE(' 12A345B','1234567890 '||TRANSLATE(' 12A345B','12345678901234567890',' '),'1234567890 '),' ') AS KEKKA from dual
--------結果--------
KEKKA
12345
正規表現(REGEXP_SUBSTR)等を使った綺麗な回答が
他にあると思うのでそれまでのつなぎにどうぞ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- JavaScript javascriptで文字分割は、 split() などメソッド不要??? 4 2023/02/06 22:50
- SQL Server SQLについて質問です。 a表がありその表には従業員名を保存するname列があります。 LIKE演算 1 2022/05/17 17:49
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Excel(エクセル) EXCELの「接続」のSQLのコマンド文字列にて、セルから任意の数値を利用したい 2 2023/03/09 16:43
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
sqlで質問です。 aテーブルとb...
-
下記のsqlで取得されるレコード...
-
MSDOS ソート sortf 使用方法
-
oracleのimpdpでORA-39166
-
orace SQL文のエラー(ORA-0092...
-
写真のsql文空白をハイフン表示...
-
sqlで質問です。 Aテーブルは店...
-
SQLの中上級者へのレベルアップ...
-
Object Browser相関タブの見方...
-
SQLについての質問
-
副問合せにLIKE文を使う方法は...
-
PL/SQLでフェッチでNULLの項目...
-
ORCALE SQL 複数のGROUP BY
-
oracleの直接接続のクライアン...
-
ORA-14452について
-
10営業日前の日付を取得したい...
-
複数レコードの完全一致
-
SELECTによる表の変換方法を教...
-
開発対象となるアプリケーショ...
-
質問です。 下記のテーブルとデ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
副問合せにLIKE文を使う方法は...
-
oracleのimpdpでORA-39166
-
64bit端末でのOLEDB接続に関して
-
CASLⅡ 文字データから数値デー...
-
データベースのカラムの型がCHA...
-
バッチファイルで複数フォルダ...
-
batファイルでのSQL(oracle)...
-
複数レコードの完全一致
-
osqleditについて
-
sqlplusで接続できない
-
SQLの中上級者へのレベルアップ...
-
orace SQL文のエラー(ORA-0092...
-
ワークテーブルって何?
-
10営業日前の日付を取得したい...
-
IPアドレスを数値に変換
-
[Oracle] UPDATE分の副問い合わ...
-
ORA-14452について
-
videopad 無料版 アンインストール
-
テーブルやカラムの物理名のネ...
-
質問です。 下記のテーブルとデ...
おすすめ情報