![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
ORACLE更新する際のSQLで困ってますので、SQLを教えてください。
TABLE1の中に項目MEMO(15桁)が存在します。
このMEMOに入っているデータは以下のとおりです。
MEMO
090-XXXX-XXX1
090-XXXX-XXX2
090-XXXX-XXX3
A
B
C
090-XXXX-XXX4
090-XXXX-XXX5
090-XXXX-XXX6
このデータの中で、上3行のデータ(090-XXXX-XXX1~090-XXXX-XXX3)のデータを
下3行のデータ( 090-XXXX-XXX4~ 090-XXXX-XXX6)のように
1桁目をスペースする形で統一したいと思います。
更新後のデータは以下のとおりです。
MEMO
090-XXXX-XXX1
090-XXXX-XXX2
090-XXXX-XXX3
A
B
C
090-XXXX-XXX4
090-XXXX-XXX5
090-XXXX-XXX6
このような場合のSQL作成方法はどのようにしたらいいのでしょうか?
WHERE文については、
WHERE SUBSTR(MEMO,1,1) <> 'A' AND SUBSTR(MEMO,1,1) <> 'B' AND
SUBSTR(MEMO,1,1) <> 'C' AND SUBSTR(MEMO,1,1) <> ' '
これでいいのかなと思うのですが、
作成方法について教えて頂きたく思います。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>こちらでは万一変更前MEMOに15桁フルで使用されている場合は
とありますが、CHAR(15)と定義しているのであれば全データが15桁まで半角スペースで埋められますよね。
http://download.oracle.com/docs/cd/E16338_01/ser …
ですので、
>090-XXXX-XXX1
>090-XXXX-XXX2
>090-XXXX-XXX3
>A
>B
>C
>' 090-XXXX-XXX4'
>' 090-XXXX-XXX5'
>' 090-XXXX-XXX6'
このようなデータはあり得ないわけです。実際には
'090-XXXX-XXX1__'
'090-XXXX-XXX2__'
'090-XXXX-XXX3__'
'A______________'
'B______________'
'C______________ '
'_090-XXXX-XXX4_'
'_090-XXXX-XXX5_'
'_090-XXXX-XXX6_'
というデータになっているはずです。(アンダースコアは半角スペース)
上記を踏まえて、更新後にどのようなデータになっていたらいいか提示していただけますか?
No.1
- 回答日時:
半角スペースが消えてしまっているのでデータが分かりづらいのですが、
update TABLE1
set MEMO = ' ' || MEMO
where 記載の条件;
で先頭に半角スペースを追加することができると思います。
早速教えて頂き、ありがとうございます。
スペース消えてたので、スペース対象分のみ前後に''でくくった形で再度記載しておきます。
(実際は''はありませんので、関係ありません。前スペースが消えてしまうので、
表示するための対処です。)
更新前のデータは以下のとおりです。
MEMO
090-XXXX-XXX1
090-XXXX-XXX2
090-XXXX-XXX3
A
B
C
' 090-XXXX-XXX4'
' 090-XXXX-XXX5'
' 090-XXXX-XXX6'
更新後のデータは以下のとおりです。
MEMO
' 090-XXXX-XXX1'
' 090-XXXX-XXX2'
' 090-XXXX-XXX3'
A
B
C
' 090-XXXX-XXX4'
' 090-XXXX-XXX5'
' 090-XXXX-XXX6'
それで、先ほど教えて頂いたUPDATE文、
update TABLE1 set MEMO = ' ' || MEMO where 記載の条件;
ですが、
こちらでは万一変更前MEMOに15桁フルで使用されている場合は、
変更後MEMOは空白1桁+変更前MEMOの14桁までを編集した形で
最後の15桁目は削られてもよいと考えています。
現状ORACLEの設定ではMEMO CHAR(15)と指定していますが、
教えて頂いたSQLを実行してもエラー等は発生しないでしょうか?
一応、心配になったので再度質問させて頂きました。
お手数ですが、教えて頂ければ嬉しいです。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- iPhone(アイフォーン) web上の電話番号リンクの桁区切りが、iPhoneだと特定電話番号でおかしくなるのを解決したい 1 2023/03/28 14:27
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
- その他(パソコン・周辺機器) チャレンジタッチ3 改造 アプリインストールできない 1 2022/07/01 14:43
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- ネットワーク コマンドプロンプトで、コマンドの飛ばし方を教えてください。 ネットワークにデータを飛ばす(copy) 4 2022/10/19 11:21
- デスクトップパソコン outlookのメール:outlook.comの表示方法を教えて下さい 1 2022/03/28 00:30
- UNIX・Linux bash のファイルの読み込み方についてご質問 3 2023/05/15 20:40
- 日本語 「天ぷら油」と「天丼」の関係について。「天ぷら油」で揚げた「天丼」? 「天ぷら油」で調理した「天丼」 9 2022/08/13 13:17
- 確定申告 確定申告しなかった場合の期末商品棚卸高の扱い 2 2022/06/11 21:24
- その他(IT・Webサービス) EXCELVBAでシートを他のブックにコピーする命令を出すと毎回存在しないシート名の問合わせがある 1 2022/05/07 15:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSのデータをWebブラウザで...
-
MS-Accessのエクスポートで異常...
-
1回目の実行に3分、2回目の実行...
-
Sqliteで使えない文字。
-
oracleデータベースの更新履歴
-
SQL文で、重複データの上書きは...
-
SQLを教えてください
-
データベース構築について
-
【DB】同じトランザクション内...
-
postgresql についてです
-
DATファイルをEXCELで開きたい
-
SQL*Loaderのコミットポイント...
-
期限切れのバックアップの削除
-
エクセルのフィルタ抽出が固まる
-
PCが悪くなって新しいPCにSSMS...
-
復旧中のデータベースについて
-
テキストで空欄(null?)を検索...
-
mdfファイルの残骸について
-
ファイルの存在チェック
-
復元時間:復元しています
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのデータをWebブラウザで...
-
MS-Accessのエクスポートで異常...
-
1回目の実行に3分、2回目の実行...
-
ACCESS2010 Excelエクスポート ...
-
accessの上限容量2Gでは容量が...
-
業務用のデータベースサーバー...
-
ACCESSのクエリからORACLEのDB...
-
ツリー情報のデータをSQLで取得...
-
会社の諸事情により全システム...
-
Sqliteで使えない文字。
-
SQL文で、重複データの上書きは...
-
oracleデータベースの更新履歴
-
SQLServerのDBのうちテーブルを...
-
別サーバーへのデータの同期更...
-
SQLSERVERのテーブルにデータを...
-
PL/SQLで複数のFor文を解除したい
-
暗号化したDBのデータ移行
-
データベース
-
検索システムでDBを使用しない...
-
ACOSのRDBについて教え...
おすすめ情報