我的任务是选择一些列并在一行中显示每组列,但具有所需的格式。第一组数据将使用127个空格,其中包括“AAAA”,[LV_WRR],“D”,[LV_WRR]和[ID],但[ID]的长度不同,这就是问题所在。 [FTA]应该从空格128开始,忽略[ID]使用的长度。
这就是我现在所拥有的:
SELECT
'AAAA'
+ [LV_WRR]
+ 'D'
+ [LV_WRR]
+ [ID]
+ SPACE(120 - LEN([ID]))
+ [FTA]
+ [FT_ID]
FROM MyTable
[ID]列具有不同长度的数据。
有什么想法吗?
感谢。
答案 0 :(得分:0)
试试这个:
SELECT
LEFT('AAAA' + [LV_WRR] + 'D' + [LV_WRR] + [ID] + REPLICATE(' ',127),127) + [FTA] + [FT_ID]
FROM MyTable
REPLICATE
创建一个127个字符长的空格字符串。这将附加到由其他列值和常量形成的字符串。 LEFT
然后获取此字符串最左边的127个字符,并附加[FTA]
和[FT_ID]
列的值。结果是FTA
的值始终从第128位开始。
可以找到示例演示here。