我有一个返回表的存储过程。该表中的一列是T-SQL函数的结果。该函数根据ID返回0或1。存储过程接受以XML格式存储的ID。
这个函数非常复杂,所以我在这里省略它,但基本上函数ForeignVendor
获取一个ID并返回0或1。
该函数接受一个xml参数并返回一个表。我需要这个功能。我希望重用它。
这是功能:
ALTER PROCEDURE ForeignVendors
@VendorIDs xml
AS
BEGIN
SET NOCOUNT ON;
SELECT
VEN_POName,
T.Item.value('@VendorID[1]', 'varchar(10)') AS "VendorID",
ForeignVendor(T.Item.value('@VendorID[1]', 'varchar(10)')) AS "ForeignFlag"
FROM
VEN V
JOIN
@VendorIDs.nodes('/Root/Vendor') AS T(Item) ON V.VEN_VendorID = T.Item.value('@VendorID[1]', 'varchar(10)')
END
我可以这样称呼它
exec [Rotair_ForeignVendors] N'<Root><Vendor VendorID="000010"/><Vendor VendorID="000011"/><Vendor VendorID="000198"/><Vendor VendorID="000021"/></Root>'
然后回来
NEMITZ TOOL CO. 000021 0
P & W CANADA HELICOPTER 000198 1
SHOP 000011 0
ILS 000010 0
一份报告需要知道最后一列中是否存在任何1。我试图通过查询将结果传递给一个组,但这不起作用。
有关处理此问题的最有效方法的任何建议吗?