0

1つのフィールドに連結した3つのフィールドがありますが、クエリを実行すると、結果セットは正しいですが、1つのフィールド内で等間隔に配置されていません。どうすればそれらをきちんと正しく配置できますか。お手伝いありがとう。

クエリは次のとおりです。

SELECT CONVERT(varchar(20),Book)+ Space(2) + '(' + CONVERT(varchar(30),Year)
+ ')' + Space(2) + '(' + CONVERT(varchar(30),Print) + ')' As  'Film Description', Genre,
Cost
FROM Film
Order By Year DESC, Book ASC
4

2 に答える 2

0

VarcharsのConvert(Char(代わりに使用すると、スペースが削除されます。Convert(Varchar(

于 2012-09-23T22:13:03.690 に答える
0

末尾のスペースを無視するためVARCHAR、使用しない別のデータ型を使用する必要があります(例CHAR)。他のいくつかのコメント:

  • 列名yearなどの予約語の使用には注意してくださいprint
  • 'single quotes'エイリアス区切り文字としての使用には注意して[square brackets]ください(将来性が高く、文字列リテラルを混乱させるのが困難です)
  • スキーマプレフィックスを使用する必要があります(例dbo.Film
DECLARE @Film TABLE(Book VARCHAR(255), [Year] INT, [Print] VARCHAR(255));

INSERT @Film 
SELECT 'a', 2012, 'hello there this is at least 30 characters, right?'
UNION ALL 
SELECT 'this must be at least 30 characters too, right?', 2011, 'b';

SELECT CONVERT(CHAR(20), Book)
 + SPACE(2) 
 + '(' + CONVERT(CHAR(4),[Year]) + ')' 
 + SPACE(2) 
 + '(' + CONVERT(CHAR(30), [Print]) + ')' 
 As [Film Description]
FROM @Film
Order By [Year] DESC, Book;
于 2012-09-23T22:16:48.750 に答える