我在SQL中有一个结果集,其中包含一组逗号分隔的电话号码,之前我们只有一个电话号码,我可以格式化我需要的电话号码,即
(123)456-7890
现在这个公式不起作用,因为我的SQL列中有10个以上的数字,所以有什么方法可以在SQL
中实现这个事务吗?这是我的SQL输出。
顺便说一句,我从此代码中获取此comma separated
值。
SELECT
EmployeeID,
Type,
STUFF(
(
SELECT
', ' + PhoneNumber
FROM EmpPhone E
WHERE E.EmployeeID = T.EmployeeID AND E.Type = T.Type
FOR XML PATH(''),TYPE
).value('.','VARCHAR(MAX)'
), 1, 1, ''
) AS Phones
INTO #PhoneNumbers
FROM EmpPhone AS T
GROUP BY EmployeeID, Type
所以我的问题是查询结果可以像
一样(919)382-9999,(888)888-8888,(222)-2222 ......
答案 0 :(得分:2)
试试这个,
SELECT
EmployeeID,
Type,
STUFF(
(
SELECT
', ' + '('+LEFT(PhoneNumber,3)+')'+RIGHT(LEFT(PhoneNumber,6),3)+'-'+RIGHT(PhoneNumber,4)
FROM EmpPhone E
WHERE E.EmployeeID = T.EmployeeID AND E.Type = T.Type
FOR XML PATH(''),TYPE
).value('.','VARCHAR(MAX)'
), 1, 1, ''
) AS Phones
INTO #PhoneNumbers
FROM EmpPhone AS T
GROUP BY EmployeeID, Type
希望,这对你有帮助。