我试图在字段上返回特定数量的字符。基本上我需要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]
3013035401300000001F6740000008 1211455
80190473005000004000420232800 1209306
编辑_我想它正在发挥作用。出于某种原因,sql server管理工作室显示它们不合适(参见imgur)但是当我导出到csv时它很好.....抱歉。
答案 0 :(得分:2)
另一种方法可能如下:
SELECT LEFT('123' + ' ', 20)
答案 1 :(得分:1)
您可以CAST
数据到固定长度数据类型CHAR
Select Cast('123' as CHAR(20))