所以我有两列ID喜欢连接在一起,删除破折号和前两个字符,以及定义返回的数字。
实施例
Po_no值为18-29201-202
Line_no值为6(id喜欢将其作为006返回)
我想最终得到这个29201202006
现在我正在将它们组合起来并删除破折号:
concat(replace(oe_hdr.po_no, '-', ''), job_price_line.line_no) as [PO and LINe NO],
结果:
18292012026
我怎么能删除po_no的前两位数字并确保line_no总是三位数?
答案 0 :(得分:1)
您希望基本上连接两个部分,修改后的PO和标准格式的Line。你已经非常接近了,但是你的两个方案的公式都有些偏差。
replace(oe_hdr.po_no, '-', '')
是正确的,但你只想要正确的8位数字,假设你的PO格式总是一致的(如果没有,你需要更复杂的东西,比如找到第一个“ - ”,并且mid()
/ substr()
取决于系统)。简而言之,您实际上在寻找以下内容:
right(replace(oe_hdr.po_no, '-', ''),8)
在第二部分中,将前导0添加到字符串的最简单方法是连接,但是可能需要多个0,然后需要right()
到所需的字符串长度:
Right(concat("000",job_price_line.line_no),3)
您可以将这两者结合起来获得完整的字符串:
concat(
right(replace(oe_hdr.po_no, '-', ''),8),
right(concat("000",job_price_line.line_no),3)
)