返回特定的位数

时间:2016-12-07 15:40:22

标签: sql sql-server-2012

我试图在字段上返回特定数量的字符。基本上我需要20个字符。

因此,如果字段返回' 123'

我希望它是" 123插入17个空格"

该字段并不总是三个字符 - 有时候或多或少

它似乎无法奏效。我有一个返回,其中我的字段是10位数,这很好,但是当我检索11位数的字段代码不是9个空格,它放入10 - 我需要总共20个字符。我所评论的是所有都返回相同的结果。

    concat(
right(replace(oe_hdr.po_no, '-', ''),8),
right(concat('000',job_price_line.line_no),3),
format(oe_pick_ticket_detail.unit_quantity, '00000000'),
--left(job_price_line.customer_part_no + '                    ',20),
--job_price_line.customer_part_no, '          ',
cast(job_price_line.customer_part_no as char(20)),
oe_pick_ticket.invoice_no)  as [po/line/release/qty/cust part no as 20 characters / invoice]

http://imgur.com/a/OQKDh

3013035401300000001F6740000008         1211455
80190473005000004000420232800          1209306

编辑_我想它正在发挥作用。出于某种原因,sql server管理工作室显示它们不合适(参见imgur)但是当我导出到csv时它很好.....抱歉。

2 个答案:

答案 0 :(得分:2)

另一种方法可能如下:

SELECT LEFT('123' + '                    ', 20)

答案 1 :(得分:1)

您可以CAST数据到固定长度数据类型CHAR

Select Cast('123' as CHAR(20))