No.2ベストアンサー
- 回答日時:
変数はそのセッション内だけで有効なはずですが、まぁ使用したくないなら
サブクエリになるんじゃないでしょうか?
SELECT ROUND(num,(SELECT IF(MAX(LENGTH(num) - LENGTH(floor(num)))>0,MAX(LENGTH(num) - LENGTH(floor(num)))-1,0) FROM hoge)) as num FROM hoge
こんにちは。
私のSQLはダメダメでしたね・・・
いらぬ手間をとらせてしまいました。
当初の予想としては、汎用の関数が用意されていると思っていたのですが、
たとえ、欲しい関数がなくとも、知ってる関数を色々組み合わせて、1個の巧妙なSQL文が作れるのですね!
No.1
- 回答日時:
一回桁数を変数にとってみるとか・・・
double型のnumというフィールドをつかって処理すると
SELECT @KETA:=MAX(LENGTH(num) - LENGTH(floor(num))) FROM `hoge`;
SELECT ROUND(num,IF(@KETA>0,@KETA-1,0)) as num FROM hoge;
見た目でもわかるとおり、あまりお勧めできないので受け取った側のミドルウェアで
処理するのが妥当だと思います
こんばんは!
ご返信まことにありがとうございますm(__)m
SQLで変数なんて使えるのですね!
しかし、この変数はいつまで保持されるのだろうという恐怖があり、試してません^^;
代わりに2行目の@KETAという部分を、
MAX(LENGTH(num) - LENGTH(floor(num)))に置き換えて、
SELECT ROUND(num,IF(MAX(LENGTH(num) - LENGTH(floor(num)))>0,MAX(LENGTH(num) - LENGTH(floor(num)))-1,0)) as num FROM hoge
という風にして試してみました。
私的にはこれで行けると思ったのですが、結果はnumの値(?)が1行返ってきただけでした・・・
やはり、結果セットを受け取った後のスクリプトの中で編集する方が無難ぽいですね。
個人的には、より高速な方をチョイスしようと思っていたところですが、どちらにせよ一瞬で終わってしまう処理だったり^^
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# 浮動小数の数値文字列化 1 2022/04/18 15:15
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- 数学 以下の問題が分かりません。 8ビット浮動小数点数が、最上位ビットから順に符号1ビット、指数部3ビット 4 2023/07/22 16:06
- Excel(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- Excel(エクセル) エクセルのセルの書式設定・ユーザー定義の条件設定について 1 2022/08/17 21:56
- 統計学 教えてください! あるくじ引きには5枚に1枚の割合でアタリが入っていると宣伝しているが、実際には20 7 2023/05/29 09:10
- 高校 高校化学、気体、温度の有効数字 3 2023/04/02 11:39
- 数学 小数点の計算についてです。 答えは与えられた数字の中で最も少ない桁に四捨五入で合わせるのですが、ひと 2 2023/04/04 15:19
- Visual Basic(VBA) VBAのifで 4 2023/05/16 14:21
- 教育学 エクセルで小数点以下を四捨五入について教えてください。 2 2023/04/05 17:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
count関数の値をwhere句で使用...
-
OUTER JOIN とgroup by
-
最大値の数をカウントしたい
-
SQLローダーCSV取込で、囲み文...
-
複数のテーブルから値を合計出...
-
単一グループのグループ関数で...
-
2つの列が同じ値の行を取得するSQL
-
AccessのSQL文で1件のみヒット...
-
SELECT FOR UPDATE で該当レコ...
-
Oracleで「文字が無効です」の...
-
【PL/SQL】FROM区に変数を使う方法
-
テーブルの最後(最新)のレコー...
-
group byの並び順を変えるだけ...
-
select文の実行結果に空白行を...
-
レコードの更新履歴について
-
SQL文の入れ子について
-
並べ替えについて
-
レコードの登録順がおかしい
-
アクセスのレポートでレコード...
-
テーブルレーコードをソートし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
count関数の値をwhere句で使用...
-
結合したテーブルに名前をつけ...
-
OUTER JOIN とgroup by
-
ストアドファンクションの再帰...
-
SQL カラムの値ごとの集計
-
SQL 自己結合で件数の条件指定
-
MySQLのSUM関数について
-
同一カラム名でjoinしたところ...
-
小数点以下桁数が最大の値に小...
-
【初歩】項目別の合計件数をSQL...
-
MySQLで最小値
-
グループ内最大値に印を付けるS...
-
SQLローダーCSV取込で、囲み文...
-
単一グループのグループ関数で...
-
select文の実行結果に空白行を...
-
テーブルの最後(最新)のレコー...
-
【PL/SQL】FROM区に変数を使う方法
-
SELECT FOR UPDATE で該当レコ...
-
2つの列が同じ値の行を取得するSQL
-
レコードの登録順がおかしい
おすすめ情報