- ベストアンサー
isqlの結果の余分な空白
isqlで カラムAAA char(10)を select substring(AAA,1,2) from テーブル名 としたときに出力結果が ---- 11 12 13 というように出力が2文字指定でも余分に2文字ついて 計4文字で表示されます(後ろ2文字はスペース) このプラス2文字を無くす方法をご存知の方がいらっしゃいましたら教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 substring関数は何文字目から何文字抜き取るという関数です。 カラム AAA char(10) に半角だけ入っているとは限りませんので全角文字を想定して半角4文字分で結果が出力されます。 ---- 11 ああ(※これも2文字です) 12 試しにsubstring(AAA,1,3)とやってみると倍の半角6文字分で出力されます。 代わりにconvert関数を使うとAAAカラムをchar(2)として 出力できます。 select convert(char(2),AAA) from テーブル名 -- 11 12 13 という結果になります。 ※当方SQLServer6.5です
その他の回答 (1)
- YanYas
- ベストアンサー率34% (26/75)
回答No.2
rtrim 関数をつかうと余分な空白を取り除いてくれます。 (例) select rtrim(substring(AAA,1,2)) from テーブル名 # なぜ空白が付いてしまうのかは判りません・・・ # ベンダーサポートに問い合わせる方が良いかもしれません。
質問者
お礼
rtrimで対処できました。ありがとうございます。
補足
回答ありがとうございます。 substringの場合は理解できました。 ただ、 numaric(16,4)や(16,0)をconvertなしで出力したとき、 長さが19文字分で出力されるのは何故でしょうか? numaric(16,4)なら整数部12と小数部4であとコンマの計17文字ですし、numaric(16,0)なら16文字になりますからそれぞれ+2、+3文字分プラスされています。