我有一个例程,它会在特定邮政编码的许多里程内返回邮政编码列表。我可以调用例程并获取结果列表:
CALL Location.GetNearByZipCodes(28078,5);
结果集:
28031,28070,28078,28205
我想做一个查询,它选择所有带有例程输出的记录作为where子句的一部分:
select * from Location where zipcode in (Location.GetNearByZipCodes(28078,5));
然而,这不起作用。是否可以将函数的结果用作where子句的一部分?如果是这样,那么正确的语法是什么?
上述选择查询失败,显示:
错误代码1305:Location.GetNearByZipCodes不存在。
提前感谢您的帮助!
答案 0 :(得分:1)
试试这个:
"select * from Location where zipcode in (".Location.GetNearByZipCodes(28078,5).");"
另外,请确保此函数返回带有由逗号,
分隔的zipcodes的字符串。
您还可以在查询之前调用Location.GetNearByZipCodes()
并将返回的值存储在变量中,然后以您习惯的方式使用查询中的变量。