当前,我有一个加载表格的程序包。但是,我想将productnumber字段更改为bigint,当前是varchar。我还想为旧的产品编号创建一个新列。所以目前看起来像这样:
产品编号:1827493849,PN19379247
您会看到产品编号中包含非数字,这就是为什么我想要一列来存储旧编号(例如当前编号)的原因。但是我的目标是创建一个列,该列将存储这两个数字以及更多的内容,以除去前导PN。有人可以举例说明如何完成此工作。目前,我已经创建了一个新表,其中ProductNumber为bigint,OldNumer为varchar,该表为空。我希望它能够像在OldNumber下一样存储帐号,然后将其插入到另一列中,以除去领先的PN。插入到ProductNumber列之前,必须删除哪个PN,因为它是bigint。非常感谢您的帮助。
答案 0 :(得分:0)
我不建议您使用'2019-08-15 12'
。而是使用适当长度的bigint
。
如果要通过删除前两个字符来转换字符串,则可以使用numeric
:
stuff()
如果您不知道数字从哪里开始,请使用select try_convert(numeric(20), stuff(productnumber, 1, 2, ''))
查找它:
patindex()