
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
OUTER JOIN とgroup by
-
count関数の値をwhere句で使用...
-
小数点以下桁数が最大の値に小...
-
複雑なSQLを一発で実行
-
テーブルの最後(最新)のレコー...
-
SQLローダーCSV取込で、囲み文...
-
単一グループのグループ関数で...
-
Oracleで「文字が無効です」の...
-
【PL/SQL】FROM区に変数を使う方法
-
並べ替えについて
-
updateで複数行更新したい
-
1の行を固定した上でVBAを用い...
-
枝番の最大値とその前のデータ...
-
レコードの登録順がおかしい
-
2つの列が同じ値の行を取得するSQL
-
AccessのSQL文で1件のみヒット...
-
複数のテーブルから値を合計出...
-
データ
-
OracleとAccessの出力順の違い
-
24時間以内に更新されたデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
count関数の値をwhere句で使用...
-
小数点以下桁数が最大の値に小...
-
結合したテーブルに名前をつけ...
-
OUTER JOIN とgroup by
-
初心者、SQLで分からない問題が...
-
MySQLで最小値
-
日本語で、likeを使うと値が正...
-
mysql について質問です
-
重複レコードを処理しない
-
同一カラム名でjoinしたところ...
-
selectの行を共通に使いたい
-
東京とその他で集計するには
-
初歩的な質問ですが、教えてく...
-
複数テーブルの集計その2
-
group by のソート
-
集計について
-
Select文を含むUpdateの記述方...
-
市区町村別の件数をカウントす...
-
( Mysql ) GROUP BY節について
-
【PHP5+MySQL5】 count(*)の値...
おすすめ情報