忙しい現代人の腰&肩のお悩み対策!

お世話になります。

基本的なことだと思うのですが、調べても見つけられませんでした。
わかる方教えて下さい。

現在
to_char(SUUJI,'FM9999999999990.9999999999999')

         表示
SUUJI = 10 → 10
SUUJI = 10.1 → 10. ( . が残ってしまう)

小数点以下がある場合は XXXXX.XXX
小数点以下が無い場合は XXXXX

出来るでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (4件)

こんにちは。



>使用しているのはPL/SQLです。
やっとわかりました・・・。

rtrim(to_char(SUUJI,'FM9999999999990.9999999999999'),'.')
ですね。
(^^ゞ
    • good
    • 2
この回答へのお礼

ありがとうございます。
出来ました。

よく考えてみたらそうなりますね。
勉強不足です。

お礼日時:2004/10/25 08:07

SUUJI = 10.1 のときに 10. になるのですか?


rtrim('10.', '.') の結果は、'10' だと思います。

参考URL:http://oshiete1.goo.ne.jp/oshiete.php3?c=701
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2004/10/25 08:08

プログラム言語が何かわからないので、なんですが、


少なくとも、
小数点以下が、存在する場合としない場合とを調べて
フォーマットを変えたり、
別の命令にすることはできるのではないでしょうか?

この回答への補足

すみません。説明不足でした。
使用しているのはPL/SQLです。

小数点を場合によって消すというのは調べる限りではありませんでした。

場合分けする方法しかないのでしょうか?

補足日時:2004/10/22 08:04
    • good
    • 0

こんにちは。



TO_CHARって何の???
SQLですか?
(^^ゞ

この回答への補足

TO_CHARは日付や数値を文字列へ変換する関数です。
SQLの関数だと思います。
自分もあんまり知らないですけど(..)。

補足日時:2004/10/22 08:07
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QTO_CHARでのゼロ非表示について

通常は小数点第二位まで固定で表示させたいのですが
ゼロの場合は何も表示させたくありません。
TO_CHAR(COL1,'FM9,999.00')ですと'.00'が返ってきます。
書式では無理なのでしょうか?

現状は以下のようにしています。

DECODE(COL1,0,'',TO_CHAR(COL1,'FM9,990.00'))

宜しくお願い致します。

Aベストアンサー

TO_CHAR(COL1,'FMB90.99')

でできると思いますが、
どうでしょうか。

QORCLEでの小数の表示方法の変更について

ORACLEでは小数の数値型が「.75」のように整数部がゼロなしで持っていますが、これをORACLEの設定で「0.75」で持つように出来ないでしょうか?
なお、あるユーティリティで型は数値型でCSVに落としたいのでTO_CHARで書式設定して文字列型に変換するやり方以外でないでしょうか?よろしくお願いします。

 

Aベストアンサー

#1です。
皆さんと同じ意見ですが、
glogin.sqlファイルに

column コラム名 format 99.99 (sshibaさん記載)

を書いてしまえば何回 sql plusを切断しても
大丈夫です。(^^)

QOracleの数値型で1以下の値をセットすると、取り出すときに.15のように頭に0がつかない表記になります。

Oracleの数値型で1以下の値をセットすると、取り出すときに.15のように頭に0がつかない表記になります。デフォルトでこうなっているのでしょうか?

プログラム側で変更すれば済む話ですが、DB側で設定する方法はあるのでしょうか?

Aベストアンサー

DB側でどう表示するなどの設定はないはずです。実際に.15の内容で格納されているわけではないので。

少数をどのように表示するかは取り出すプログラムに依存することです。
なので設定方法も取り出しプログラム側の個別設定ということになるはずですね。

ちなみにSQLPLUSの設定なら
http://okwave.jp/qa347238.html
です。

Q小数点以下0の非表示

教えてください。
PostgreSQLでNUMERIC(8,3)のデータがあるのですが、
そのデータが小数点以下が0だった場合などに
0を表示させたくないのですがどのようにすればよいのでしょうか?
2500.000 → 2500
108.050 → 108.05
のようにしたいのです。

よろしくお願いします。

Aベストアンサー

$number = '25.0000';
echo preg_replace("/\.?[^1-9]+$/", "", sprintf("%.3f", $number));

ちょっとめんどくさいですが、上記はどうでしょう?

QOracleのデータ型、NUMBERについて

Oracleのデータ型のNUMBERは、
NUMBER(総桁数,小数部の桁数)とするとあるのですが、
テーブルの構成をみると(desc テーブル名で確認した)、
総桁数等を指定していない(NUMBERだけ)のものもあるのですが、
指定しないと総桁数はいくつになるのですか?

NUMBER型のフィールドを作成しようとしているのですが、
おおよその桁数はわかるのですが、もし越えたらと思うと、
総桁数を指定しない方がいいなかなと考えたりしています。

教えて下さい。

Aベストアンサー

こんにちは。

Oracle8の場合、最大有効桁数38の正数と負数になります。
具体的(?)には
正数:1×10の-130乗から9.99・・・9×10の125乗まで
負数:-1×10の-130乗から-9.99・・・9×10の125乗まで
とマニュアルに書いてありました。

ではでは・・・

# とんでもない数字ですね。
# マニュアルを見て少しびっくりしました。

Qsqlplusで表示が変なので、出力を整形したい。

いつもお世話になっています。

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------

上記のように意味不明な形式で出てきます。

例えばこんな風に

select カラム1,カラム2,カラム3 from hoge;

カラム1 1の値
---------------------------
カラム2 2の値
---------------------------
カラム3 3の値

等のように分かりやすく表示できないでしょうか?

ちなみにOracle9iR2を使用しています。
sqlに関するツールは使用できないルールでして、あくまでsqlplusのコマンド上でみやすくしなければなりません。

分かりづらくですいませんが、皆さま、ご教授お願いします。

いつもお世話になっています。

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
-----------------------...続きを読む

Aベストアンサー

SQLPLUSを起動して、

SQL>set linesize 列数

でどうだ。

SQL>show linesize

で確認ができる。

Q全角空白のTRIMができない・・・

文字列の前後の全角空白を除去するのに
trimが使えると思っていたのですが、できませんでした。
(半角なら取れるのですが・・・)

select trim(' あいうえお ') from dual;

何とか前後の全角空白を除去したいのですが、
何か方法はないでしょうか。

Aベストアンサー

こんな感じ。
select trim(' ' from ' あいうえお ') from dual

第2引数で消したい文字を指定できます。
select rtrim(ltrim(' あいうえお ',' '),' ') from dual

QOracle 2つのDate型の値の差を「分」で取得したい

DBはOracleを使用しています。
Date型の項目AとBがあり、それぞれ日時が設定されています。そのAとBの日時の差を「分」で取得したいと思います。
AとBは、1時間以内の場合もあれば、複数日にまたがる場合もあります。
SQLでA-Bで差分は取得できるのですが、その後、どうすれば、「分」に変換できるのかがわかりません。

よろしくお願いします。

例1)
A: 2003/06/18 9:00
B: 2003/06/18 6:00
→3時間→180「分」を返却したい

例2)
A: 2003/06/18 9:00
B: 2003/06/16 9:00
→2日→2880「分」を返却したい

Aベストアンサー

date型は、整数部で日、小数部で時間を管理しています。
なんで、1分 = 1 / 24 * 60 = 1/1440となります。

ということで、
(B - A) * 1440

とすればいいことになります。

QSELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?

初めてこちらで質問させていただきます。
どうぞよろしくお願いします。
早速ですが、
現在ストアドファンクション(PL/pgSQL)にて以下のような形になっています。
変数d1,d2,d3に値をセットするにあたり
テーブルt1を3回スキャンしています。
これを1回のスキャンでセットするような
方法はないのでしょうか?

DECLARE
d1 integer;
d2 integer;
d3 varchar(10);

begin
select min(c1) into d1 from t1;
select min(c2) into d2 from t1;
select min(c3) into d3 from t1;
各種処理
return v;
end;

気持ち的には以下のようなSQLを書きたいのですが、
syntax error となります。
(NG例)
select min(c1) into d1,min(c2) into d2,min(c3) into d3 from t1;

何か良い案がありましたら教えてください。
「それは出来ません」と言う回答でもありがたいです。
※あきらめがつくので。。

それではよろしくお願いします。

初めてこちらで質問させていただきます。
どうぞよろしくお願いします。
早速ですが、
現在ストアドファンクション(PL/pgSQL)にて以下のような形になっています。
変数d1,d2,d3に値をセットするにあたり
テーブルt1を3回スキャンしています。
これを1回のスキャンでセットするような
方法はないのでしょうか?

DECLARE
d1 integer;
d2 integer;
d3 varchar(10);

begin
select min(c1) into d1 from t1;
select min(c2) into d2 from t1;
select min(c3) into ...続きを読む

Aベストアンサー

select min(c1),min(c2),min(c3) into d1,d2,d3 from t1;
でダメ?

QPL/SQLをWindowsのBATファイルで実行するには

いつも参考にさせていただいております。
表題のとおり、WindowsServer2003上でBATファイルを起動したいのですが、うまくいきません。

BATファイルの中身
sqlplus USER_A/USER_A @DB_A @SQLPAT
sqlplus USER_B/USER_B @DB_B @SQLPAT

SQLPATファイルは、大体以下の感じで、2つのスキーマーで同じPL/SQLを実行します。

Declare

カーソルループ
更新


END;

タスクにBATファイルを登録し実行すると
最初のPL/SQLは実行されますが、次のUSER_Bが実行されません。

どなたか詳しい方ご教授をお願いできませんでしょうか?
オラクルのVerは9iです。よろしくお願い致します。

Aベストアンサー

pl_sqlは予めDBに登録しておく。
CREATE OR REPLACE PROCEDURE pl_hoge()
IS
・・・
BEGIN
・・・
END;
/

■hoge.bat
sqlplus user/pass@dbname @hoge.sql

■hoge.sql
SET serveroutput ON;
BEGIN
pl_hoge();
END;
/
exit;

1さんはhoge.sql最後のexit;を指摘してます。
私もそれと疑いますが。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング