相关疑难解决方法(0)

"语法错误"在T-SQL查询的SELECT子句中使用表值函数

我有以下表值函数来分割字符串.这工作正常,从网络上的其他地方抄袭,我认为这不是问题的原因,但包含在相关的情况下:

CREATE FUNCTION dbo.StringSplit (@sep char(1), @s varchar(512))
RETURNS table
AS
RETURN (
  WITH Pieces(pn, start, stop) AS (
    SELECT 1, 1, CHARINDEX(@sep, @s)
    UNION ALL
    SELECT pn + 1, stop + 1, CHARINDEX(@sep, @s, stop + 1)
      FROM Pieces
    WHERE stop > 0
  )
  SELECT pn,
    SUBSTRING(@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS s
  FROM Pieces
)
GO
Run Code Online (Sandbox Code Playgroud)

这将启用以下行:

SELECT * FROM dbo.StringSplit('.', 'this.is.a.string.to.split')
Run Code Online (Sandbox Code Playgroud)

生产

 pn | s
----+--------
 1  | this
 2 …

t-sql sql-server

2
推荐指数
1
解决办法
4017
查看次数

标签 统计

sql-server ×1

t-sql ×1