我在该列中有两个数字,我想将其划分为两个不同的列,例如,我有一个“数量”列,其中包含类似:
的文本Quantity change: old=100, new=0
Quantity change: old=2152, new=2139
我想查询一个包含两列的查询,一列显示“旧数量”,另一列显示“新数量”
答案 0 :(得分:0)
SELECT (substring(Quantity,
CHARINDEX('w=', Quantity)+2,(len(Quantity)-CHARINDEX('w=', Quantity)))) AS OldQuantity,
( substring(Quantity,
CHARINDEX('old=', Quantity)+4,(CHARINDEX(',', Quantity)-(CHARINDEX('old=', Quantity)+4)))) AS NewQuantity
from tablename
;
答案 1 :(得分:0)
您可以使用substring_index()
。假设值是数字:
select substring_index(quantity, 'old=', -1) + 0 as old_value,
substring_index(quantity, 'new=', -1) + 0 as new_value
这使用隐式转换将值转换为数字。仅转换前导数字,因此这会拔出=
之后的数字。