我需要帮助。 我写这篇文章的查询错误关键字'SELECT'附近的语法不正确
SELECT SUM(fi.etiliquido) FROM fi WHERE fi.fno IN (
SELECT * from divideString(
SELECT TOP 1 REPLACE(CAST(u.nrdoc AS nvarchar),'/',',') FROM u_ups1 as u WHERE 1057 IN (
SELECT * FROM divideString(REPLACE(CAST(u.nrdoc AS nvarchar),'/',','))
)
)
)
但SQL Server返回该错误关键字 'SELECT'
消息156,15级,状态1,4号线附近有语法错误。 Msg 102,Level 15,State 1,Line 7在 ')'附近的语法错误。
我不知道为什么。 你能帮我吗?
UPDATE divideString是一个函数得到一个字符串,并在该字符串
CREATE FUNCTION divideString (@InStr VARCHAR(MAX))
RETURNS @TempTab TABLE
(id int not null)
AS
BEGIN
SET @InStr = REPLACE(@InStr + ',', ',,', ',')
DECLARE @SP INT
DECLARE @VALUE VARCHAR(1000)
WHILE PATINDEX('%,%', @INSTR) <> 0
BEGIN
SELECT @SP = PATINDEX('%,%',@INSTR)
SELECT @VALUE = LEFT(@INSTR , @SP - 1)
SELECT @INSTR = STUFF(@INSTR, 1, @SP, '')
INSERT INTO @TempTab(id) VALUES (@VALUE)
END
RETURN
END
什么是'divideString'? –
什么是'divideString'?另外,你不应该用'IN'做一个'SELECT *',但是只能选择一个字段。 –
您不能将select作为参数传递给函数。 – jarlh