如何在以列名为参数的SELECT语句中调用用户定义的函数?

Ima*_*mad 2 sql sql-server

SQL Server 2005

我想调用table在SELECT语句中返回的UDF,如下所示。

select *, GetIptoCountry(IP_address) as country from tblInfo
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误

“ GetIptoCountry”不是公认的内置函数名称。

IP_address是中的列tblInfo

我怎么能这样称呼UDF?

Kob*_*obi 5

您必须使用函数的标准名称,包括模式名称:

例如(如果scema是dbo),则可以使用以下命令调用该函数dbo.GetIptoCountry()

select *, dbo.GetIptoCountry(IP_address) as country from tblInfo
Run Code Online (Sandbox Code Playgroud)

更新:

根据您的最后一条评论,您似乎有一个表值函数(返回表行),而不是标量函数(返回值),因此可以这样进行调用:

Select * from dbo.GetIptoCountry('your_ip_adress');
Run Code Online (Sandbox Code Playgroud)

您的最终查询如下所示:

select * 
from tblInfo 
cross apply dbo.GetIptoCountry(IP_address)  tblCountry
Run Code Online (Sandbox Code Playgroud)