こんにちは。
現在Oracle8.1.7.4でSUBSTR関数を使っているのですが、
私の考えだと、下のSQLを実行すると、'123456'が戻ると思っていたのですが、
'012345'が戻ってきますこれはどういうことでしょうか?
SELECT SUBSTR(TO_CHAR('1234567','00000000'),2,6) FROM DUAL;
SUBSTR(TO_CHAR('12
------------------
012345
と表示されてしまいます。
これを、
SELECT SUBSTR(TO_CHAR('1234567','00000000'),3,6) FROM DUAL;
に変更すると、
SUBSTR(TO_CHAR('12
------------------
123456
という欲しい答えが得られます。
これはどういうことなんでしょうか?
全然わかりません。
どなたか分かる方がいらっしゃいましたら、ご回答願います。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
こんにちわ。
先頭の空白って、符号の領域じゃないでしょうか?
select substr(to_char('1234567', 'FM09999999'), 2, 6) from dual;
とすると、以下のようになりました。
SUBSTR(TO_CHAR('12
------------------
123456
No.3
- 回答日時:
#1です~
> FMを指定しない時の左の空白一文字は、負値のマイナス記号用のスペースです。
> 負の値をTMP_TBLに入れてSELECTすると、左に空白一文字が付与されません。
そんなことがあったんですねぇ、、、
符号のスペースなんていらないですけど、、、
#2さん、お勉強になりました。
ありがとうございました。
参考URL:http://tsubosak.hp.infoseek.co.jp/2-10/7-column. …
No.1
- 回答日時:
こんにちは。
Oracle9.2.0.1でテストしました。
同様の現象が再現しました。
SUBSTR(TO_CHAR('12
------------------
012345
↑
このサイトでは半角の空白が削除されますが
一番左に空白がありましたよね?
なぜか、一番左に空白が入るみたいです。
ですので、結論としてはTRIMをかけてからSUBSTRすれば、希望の値が取得できます。
SQLは以下の通りになります。
SELECT SUBSTR(TRIM(TO_CHAR('1234567','00000000')),2,6) FROM DUAL;
んーTO_CHAR関数のバグなんですかねぇ、、、
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP substrの使い方について教えて下さい。 4 2023/02/17 15:59
- PHP Q&Aサイトを作成していてURLの生成方法について迷っているのでアドバイスお願い致します 1 2023/08/10 16:42
- Perl perlについての質問 2 2022/10/17 15:25
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL SQLについて質問です。 SELECT TO_CHAR(TO_DATE('90-10-08.'YY- 4 2022/05/13 20:55
- TOEFL・TOEIC・英語検定 英検3級のライティングに関して質問があります。 定型パターンを何個か覚えておこうと考え下記を見つけま 6 2022/08/28 06:20
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- PostgreSQL 数値が定期的にあらわれる文字列から、いくつめに出現した数値が指定して切り出したい 1 2023/06/08 13:12
- PHP PHP MySql ページング 2 2022/09/20 06:38
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
あいまい検索で英文字の全角半...
-
select文のwhere句に配列を入れ...
-
スペースを検索したい
-
ORACLEの「DECODE」と同じ意味...
-
末尾の全角スペースの削除
-
WHERE条件の最終桁のスペースに...
-
SQLServer2005のストアドプロシ...
-
INSERT文などの列名などの半角...
-
DTSパッケージについて
-
Trimの使い方
-
access2021 VBA メソッドまたは...
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
外部参照してるキーを主キーに...
-
エクセルで最後の文字だけ置き...
-
SELECT 文 GROUP での1件目を...
-
Exel VBA 別ブックから該当デ...
-
JANコードとPOSコードは同じ?
-
for whichの使い方
-
INSERT文でフィールドの1つだ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スペースを検索したい
-
顧客データベースを作る場合、...
-
あいまい検索で英文字の全角半...
-
末尾の全角スペースの削除
-
INSERT文などの列名などの半角...
-
select文のwhere句に配列を入れ...
-
ORACLEの「DECODE」と同じ意味...
-
SQLServer2005のストアドプロシ...
-
ストアドの戻り値で配列を返す方法
-
外部結合で取得した項目にNVL関数
-
WHERE条件の最終桁のスペースに...
-
MYSQL 右埋め 半角スペース
-
DTSパッケージについて
-
セッション変数に格納されてい...
-
Trimの使い方
-
アンケートメールをACCESSに取...
-
EXCELのVBA NULL、スペ...
-
ストアドプロシジャで配列
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
おすすめ情報