Jdu*_*nn5 1 sql sql-server sql-server-2005 user-defined-functions
我有一个内联表值函数,我想从select传递一个列,但将使用表别名.
例如:
select top 1000 a.*, b.* from item a
LEFT JOIN itemList b on a.item_id = b.item_id
where a.item_id in (SELECT * FROM dbo.fn_GIVFUC('1234567', a.item_id))
Run Code Online (Sandbox Code Playgroud)
结果:'a'附近的语法不正确.
谢谢
你必须像这样使用CROSS APPLY
select top 1000
a.*, b.*
from
item a
CROSS APPLY
dbo.fn_GIVFUC('1234567', a.item_id) c ON a.item_id = c.item_id
LEFT JOIN
itemList b on a.item_id = b.item_id
Run Code Online (Sandbox Code Playgroud)
这意味着你可能会得到重复,所以这可能会有效.我无法测试
select top 1000
a.*, b.*
from
item a
LEFT JOIN
itemList b on a.item_id = b.item_id
WHERE
EXISTS (
SELECT *
FROM dbo.fn_GIVFUC('1234567', a.item_id)
-- may need this WHERE a.item_id = c.item_id
)
Run Code Online (Sandbox Code Playgroud)