• ベストアンサー

SELECT文で列名指定して桁あわせしたい(符号付数字項目)

以前にも同じような質問をしましたが、少し異なります。 SQLServerでSELECT文を発行した場合です。 列名をいくつか指定し、そのうちの1つの列名の桁数をあわせたいのですが良い方法はないですか? select A,B,C from xxtbl  例えばc列が符号付数字項目(decimal)だったとします。 出力を8桁にしたい。 値が”-12”の場合に" -12”としたいのです。 mataha, " 12-"でもいいのですが。

質問者が選んだベストアンサー

  • ベストアンサー
  • chaozux
  • ベストアンサー率40% (25/61)
回答No.1

はじめまして。 例えば"-12"の場合は、頭に空白を5byte分入れるということで良いですか? select right(space(8) + convert(varchar,c),8) from xxtbl または select right(' ' + convert(varchar,c),8) from xxtbl ※シングルクォーテーションの間は半角スペース8個分です。  ここの掲示板に投稿するとスペース表示は詰められているようです。 で出来ると思います。

kuriosprj
質問者

お礼

ありがとうございました。 たしかにできました。 またお願いします。

関連するQ&A

  • SELECT文で列名指定して桁あわせしたい

    SQLServerでSELECT文を発行した場合です。 列名をいくつか指定し、そのうちの1つの列名の桁数をあわせたいのですが良い方法はないですか? select A,B,C from xxtbl  例えばc列が8桁charだったとします。 値が”0”の場合に”00000000”としたいのです。 format指定みたいのはないですか?

  • SQL SELECT文について

    本来SELECT文で列を表示させる時には列名をいれますが、 例) select 列1,列2 from テーブル名 列名ではなく列を数字で指定したい場合はどうすればいいのでしょうか? ちなみに select 2,3 from テーブル名 のやり方だと駄目でした。 ご教授おねがいします。

  • SELECT文

    SELECT文で列を指定するのではなく 列には存在しない、自分で指定した文字列を 表示させるにはどうすればいいのでしょうか? 文的にはこのようなイメージです。 SELECT 指定した文字列,存在する列名 FROM テーブル名 分かり難いかもしれませんが よろしくお願いします。

  • GROUP BYを使ったSELECT文の総件数を求める方法

    【表A】 列1 | 列2  ----------- 山田 | A 山田 | A 田中 | A 田中 | B 田中 | C 木村 | A 木村 | A 木村 | B 上記で列1・列2をグループ化した件数を求めたいのですが、Oracleだと   SELECT COUNT(*) FROM (SELECT 列1,列2 FROM 表A GROUP BY 列1,列2) というSQL文で結果「6」が出力されますが、SQLServerではエラーとなってしまいます。 SQLServerで実現したい場合はどのように記述すればよろしいでしょうか?

  • select文のサマリー

     select sum(A.列名1)  --列名1の型はnumber  from テーブル名 A where A.列名2 = 定数  and A.列名3 <> 定数; と言った簡単なSQLなのですが、 結果としてnull値が返ることはあるでしょうか? count では必ず数値が返ると思うのですが・・・sumの場合もヒットする値が1件もなかった場合0が返るのでしょうか?  また、sum()またはcnt()でnullが返されるような条件があるとしたらどんな時でしょうか?

  • accessのフィールドに10桁の数字は入らない??

    あるCSVからAccessのテーブルに読みこんだのですが 一部のフィールドで文字の欠落がありました。 元のCSVの内容どおりに、手入力で欠落した箇所に 値を入れようとしたのですが、どうも9ケタの数字は入るのですが 10桁の数字は入らないようでエラーが出ます。 ★メッセージは以下の通りです。  このフィールドに入力した値が正しくありません。  たとえば、数値型のフィールドに文字列を入力しました。 Accessの仕様として、数字の桁数制限があるのでしょうか? また、解決策は何かないでしょうか? XP2、ACCESS200です

  • エクセルで+、-の符号付きの数字金額の足し算の方法

    エクセル2010で、セルの参照で値(金額)を持ってきて、行方向の合計金額を出したいのですが、元のセルの値が最初に+、ーの符号と最後に「円」が付いています。 桁数は決まって居ないので「右から(左から)幾つの数字」とか「真ん中の幾つの数字」という事もできません。(+123円、-54321円という感じ) このような場合の合計の出し方を教えて頂ければありがたいのですが。

  • 有効数字N桁のマクロについて

    有効数字N桁の処理をするマクロ ROUND2(aa,NN) aa処理する数字、 NN:有効数字桁数 ROUND2 = Application.Round(aa, -Int(Application.Log(Abs(aa))) - 1 + nn) をつかって、有効数字N桁表示をさせるようにしています。これを使って1.012や0.304という数字を有効数字2桁で処理しセルに値を返すと1や0.3と表示してしまいます。 これを1.0や0.30といった形で有効数字で丸めた値そのままをセルに返したいのですが、どのようなマクロを追加すればよいのでしょうか? 説明がわかりにくいかとおもいますが、よろしくお願いします。

  • エクセルで数字の下1桁を見て並び替える

    エクセルで下記の様な数字が並んでいます。 A列の下1桁の数字は上から順に増えていて、ある数字で1に戻りまた増えています。 その数字は毎回同じではなく、6までの場合もあれば10までの場合もあります。 下記の例では上から6行、次は4行、次は7行と下1桁の数字によってグループ分け出来ますよね? それで上から6行目までのB列の値(462~530)をコピーしてSheet2のA1から横方向に並べます。 その次は7行目から10行目までのB列の値(356~487)をコピーしてSheet2のA2から横方向に並べます。 その次も同じように並べます。 B列が空欄の場合もありますが、その場合はそのままSheet2にも空欄のセルを作ります。 1グループ全部のB列が空欄でもそのままSheet2に空欄の行を作ります。 この動作をマクロで出来る式を教えて頂けないでしょうか? A列          B列 0213240101     462 0213240102    387 0213240103    556 0213240104    585 0213240105    536 0213240106    530 0213240201    356 0213240202    632 0213240203    486 0213240204    487 0213240301    586 0213240302    670 0213240303    619 0213240304 0213240305    645 0213240306    487 0213240307    651 0213240401 0213240402 0213240403 0213240501    455 0213240502    623 0213240503    411 Sheet2 A列   B列    C列   D列    E列    F列   G列 462    387    556    585    536    530 356    632    486    487 586    670    619            645    487    651    455    623    411

  • 有効数字の桁数が違う場合のプラス1桁の出し方

    有効数字の桁数がそろわない場合の掛け算・割り算は途中の計算は有効数字の桁数の最小のものプラス1桁で計算し、最後に四捨五入で有効数字の桁数の最小のものにあわせると書いてあります。次の場合、どちらが適当な計算といえるのでしょうか。( )内は最終的に有効数字の桁数の最小のものに四捨五入して桁数を合わせて出した答えです。 ア.2.5×1.456=2.5×1.45 (3.6) イ.2.5×1.456=2.5×1.46 (3.7) また、次の場合はどうでしょうか。(最終的に有効数字の桁数は2桁とします) ウ.x^2=2.456 x=√2.45 (x=1.6) エ.x^2=2.456 x=√2.46 (x=1.7) 結局、最終的な有効数字の桁数の次の次の位の数字を四捨五入すべきなのかそれとも意味があまりないので捨てるべきなのか分らないのです。 悩んでいますので、どなたか教えていただけないでしょうか。よろしくお願いいたします。