假设我有一堆部件号,我想要一个列在第一个句点之后和第二个句点之前返回字符串。我看了其他类似的问题,但无法弄清楚
所以,假设我有零件号列表,例如:
10416.1.1.4
10416.1.1.7
10416.1.1.1
10416.2.3
10416.2.2
10416.3.1.2
10416.3.1.3
10416.4.1.1
10416.10.1
10416.10.2
10416.11.1.1
我应该让我的专栏回复:
1
1
1
2
2
3
3
4
10
10
11
使用SQL Server 2012,提前感谢
编辑:这是我的代码,这会返回一个表,但排序遍布整个地方,PartNo列就是我要分割的内容
SELECT DISTINCT OrderDet.OrderNo, Scheduling.JobNo, OrderDet.PartNo,
OrderDet.Priority
FROM Scheduling LEFT JOIN OrderDet ON Scheduling.JobNo = OrderDet.JobNo
WHERE Scheduling.WorkCntr = 'Glazing'
ORDER BY OrderDet.Priority DESC
答案 0 :(得分:5)
您可以将ParseName()与Reverse()
一起使用Declare @YourTable Table ([SomeCol] varchar(50))
Insert Into @YourTable Values
('10416.1.1.4')
,('10416.1.1.7')
,('10416.1.1.1')
,('10416.2.3')
,('10416.2.2')
,('10416.3.1.2')
,('10416.3.1.3')
,('10416.4.1.1')
,('10416.10.1')
,('10416.10.2')
,('10416.11.1.1')
Select *
,NewCol = reverse(ParseName(reverse(SomeCol),2))
from @YourTable
返回
SomeCol NewCol
10416.1.1.4 1
10416.1.1.7 1
10416.1.1.1 1
10416.2.3 2
10416.2.2 2
10416.3.1.2 3
10416.3.1.3 3
10416.4.1.1 4
10416.10.1 10
10416.10.2 10
10416.11.1.1 11