- PR -

SQLサーバー2000でフォーマットを使いたい

1
投稿者投稿内容
season
常連さん
会議室デビュー日: 2004/06/27
投稿数: 25
投稿日時: 2006-05-29 15:29
すみません。SQLサーバーで、
SELECT FORMAT(項目1, "##0.000") 項目1 FROM TEST

みたいな感じで、文字形式を整えたいんですけど、どうすればいいでしょうか。
もしわかればぜひご教授ください。
めだか
大ベテラン
会議室デビュー日: 2004/11/11
投稿数: 109
投稿日時: 2006-05-29 16:00
convertと文字列関数を使えばできると思います
今川 美保(夏椰)
ぬし
会議室デビュー日: 2004/06/10
投稿数: 363
お住まい・勤務地: 神奈川県茅ヶ崎市
投稿日時: 2006-05-29 16:16
SQLで書くとちょっと分かりにくくなるので(?)
ファンクションを作ってしまってはいかがでしょう?

単純で分かりやすい例ですと
コード:
CREATE FUNCTION FORMATSTR	
(
	@target as real
)
RETURNS varchar(100) 
AS
BEGIN
	
	Declare @left varchar(96) ;
	Declare @right varchar(3) ;
	Declare @ret varchar(100) ;
	
	SET @left = convert(varchar , cast(@target as int),2) ;
	SET @right = left(right(convert(varchar,cast(@target as money),2),4),3)
	SET @ret  = @left + '.' + @right ;

	RETURN @ret
END




コード:
1> select [dbo].FORMATSTR(12345) ;
 12345.000

select [dbo].FORMATSTR(12345.6789) ;
 12345.678



って感じになりますね。
#とりあえず、何も考えずに切り捨てています。
_________________
夏椰 @ わんくま同盟
夏椰の庵
Microsoft MVP for Windows Server System - SQL Server ( Jul 2006 - Jun 2008 )
season
常連さん
会議室デビュー日: 2004/06/27
投稿数: 25
投稿日時: 2006-05-29 16:27
SELECT CONVERT(DECIMAL(6,3), 項目1) 項目1 FROM TEST

という感じで書けばできるようになりました。

Function関数使う手もあるんですねぇ。これから勉強してみます。。。
どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)