0

我将三个字段连接到一个字段中,但是当我运行查询时,结果集是正确的,但是它们在一个字段中的间距不均匀。我将如何将它们整齐而正确地分开。感谢您的帮助。

这是查询:

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

使用Convert(Char(而不是Convert(Varchar( Varchars 将空格剥离..

于 2012-09-23T22:13:03.690 回答
0

由于VARCHAR忽略尾随空格,您需要使用不同的数据类型(例如CHAR)。其他一些评论:

  • 小心使用保留字,例如yearprint作为列名
  • 小心使用'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 回答