【发布时间】:2016-12-06 18:56:47
【问题描述】:
我有以下代码,但出现错误,
消息 537,第 16 级,状态 3,第 1 行
传递给 LEFT 或 SUBSTRING 函数的长度参数无效。
代码:
SELECT
Main.HostName, LEFT(Main.Users, Len(Main.Users) - 1) AS [Users]
FROM
(SELECT DISTINCT
ST2.HostName,
(SELECT ST1.UserName + ', ' AS [text()]
FROM dbo.USERS ST1
WHERE ST1.HostName = ST2.HostName
ORDER BY ST1.HostName FOR XML PATH('')) [Users]
FROM
dbo.USERS ST2) [Main]
我试图将大多数用户留在每一行。
【问题讨论】:
-
你有一个用户为 0 个字符的机会吗?
-
检查 Main.Users 列,它可能是 null 或 ''。
-
这个用google很容易找到。
-
是的,我在 Len(Main.Users) 之后添加了 + ', ' 并运行了我的查询,但现在每个单元格都以 ',' 结尾。你知道如何解决这个问题吗?
标签: sql sql-server string-length