我有一个订单表,其中包含一个名为OrderSummary的列。 OrderSummary具有以下格式的数据

123,0,0,0,0,0|223,1,1,1,1,1|323,2,2,2,2,2|423,3,3,3,3,3|523,4,4,4,4,4|


现在我想获取|分隔符之后的第一个数字,即我希望输出为:

123
223
323
423
523


我有一个拆分函数,它将分隔符用作第一个输入,将字符串作为第二个输入。

我已经写了以下查询,但出现错误。

SELECT SUBSTRING(T.Value,1,CHARINDEX(',',T.Value)-1)
 FROM (
    Select *
    FROM Split('|',(
         SELECT OrderSummary
         FROM SAM_STORE_OM_Orders
         GROUP BY OrderSummary)))
    T


子查询可以返回多个行:

SELECT OrderSummary FROM SAM_STORE_OM_Orders GROUP BY OrderSummary

最佳答案

请尝试:

SELECT SUBSTRING(T.Value,1,CHARINDEX(',',T.Value)-1) FROM
    (SELECT VALUE FROM SAM_STORE_OM_Orders CROSS APPLY Split('|', OrderSummary)
)T

关于sql - SQL Server:子查询返回了多个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13738816/

10-10 05:34