Sql 如何拆分包含文本和数字组合的列?

Sql 如何拆分包含文本和数字组合的列?,sql,sql-server,Sql,Sql Server,我在一个表中有一列,它由像name50、somename20、other40、some65这样的数据组成 我想拆分文本部分和数字部分,并将数字部分添加到另一个具有空列的表中,其中包含已包含文本部分的列。现在,我已经将数字部分添加到此表中相应的名称部分 例如,在第二个表中,我有一个名为Textpart的列,该列与第一个表列(我要拆分)中的相同文本部分,所有名称随机重复数次。还有另一个叫做数字部分的草栏,它是空的 现在我必须用第一个表中相应的数字填充数字部分 请帮帮我。谢谢。您可以使用子字符串和pa

我在一个表中有一列,它由像name50、somename20、other40、some65这样的数据组成

我想拆分文本部分和数字部分,并将数字部分添加到另一个具有空列的表中,其中包含已包含文本部分的列。现在,我已经将数字部分添加到此表中相应的名称部分

例如,在第二个表中,我有一个名为Textpart的列,该列与第一个表列(我要拆分)中的相同文本部分,所有名称随机重复数次。还有另一个叫做数字部分的草栏,它是空的

现在我必须用第一个表中相应的数字填充数字部分


请帮帮我。谢谢。

您可以使用
子字符串
patindex
的组合

首先提取数字部分。要获取文本部分,只需将先前找到的数字部分替换为空字符串

select substring(data, patindex('%[0-9]%', data), len(data)) as numeric_part,
replace(data, substring(data, patindex('%[0-9]%', data), len(data)), '') as text_part
from tablename
更新
包含数字部分的其他表格,请使用text\u part列
连接


请注意,只有当数字接近尾端时,这才有效。

查看子字符串和PATINDEX函数(列,numcharacters)