2016-12-07 4 views
0

Ich versuche, eine bestimmte Anzahl von Zeichen auf einem Feld zurückzugeben. Grundsätzlich brauche ich 20 Charaktere.Zurückgeben einer bestimmten Anzahl von Ziffern

Wenn also ein Feld zurückkehrt ‚123‘

ich es „123 Einsatz 17 Räume“

Das Feld sein soll, ist nicht immer drei Zeichen - manchmal seine mehr oder weniger

Es tut scheinen zu arbeiten. Ich habe eine Rückkehr, wo mein Feld 10 Ziffern ist, und das ist in Ordnung, aber wenn ich das Feld, das 11 Ziffern ist, den Code nicht 9 Felder einfügt, setzt es in 10 - ich brauche insgesamt 20 Zeichen. Was ich auskommentiert habe, gibt alle die gleichen Ergebnisse zurück.

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 

EDIT_ Ich denke, es funktioniert. Aus irgendeinem Grund sql Server Management Studio zeigt sie out of line (siehe imgur), aber wenn ich in CSV exportiere, ist es gut ..... sorry.

+6

cast (20) char – SeanC

Antwort

1

Sie können die Daten auf Fest Länge Datentyp CASTCHAR

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

Ein weiterer Ansatz könnte die folgende sein:

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