gpt4 book ai didi

sql - Varstring 问题

转载 作者:行者123 更新时间:2023-12-05 05:43:26 26 4
gpt4 key购买 nike

我有 table1 和 columnA 以及这样的数据

columnA
U001.C18754

我想按数据之间的 (.) 句点分解 2 个新列 clumnB 和 columnC

columnA      columnB    columnC
U001.C18754 U001 C18754

我的代码

Select
a.columnA
,b.columnB
,b.columnC


From table1 a
Cross Apply (
Select columnA = xDim.value('/x[2]','varchar(50)')
,columnB = xDim.value('/x[3]','varchar(50)')
,columnC = xDim.value('/x[4]','varchar(50)')
From ( values (cast('<x>' + replace(varstring,'.','</x><x>')+'</x>' as xml))) A(xDim)
) b

我收到错误 Invalid column name 'varString'
不确定如何更正此错误。谢谢。

最佳答案

如果少于 4 个段,您可能需要考虑 parsename()

示例

Declare @YourTable Table ([columnA] varchar(50))  Insert Into @YourTable Values 
('U001.C18754')

Select *
,columnB = parsename(columnA,2)
,columnC = parsename(columnA,1)
from @YourTable

结果

columnA     columnB columnC
U001.C18754 U001 C18754

编辑 - XML 更新

Select a.columnA
,b.columnB
,b.columnC
From @YourTable a
Cross Apply (
Select columnB = xDim.value('/x[1]','varchar(50)')
,columnC = xDim.value('/x[2]','varchar(50)')
From ( values (cast('<x>' + replace(columnA,'.','</x><x>')+'</x>' as xml))) as A(xDim)
) b

关于sql - Varstring 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71830666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com