如何在SQL查询中使用SQL函数

时间:2010-12-10 22:02:46

标签: sql

假设我有一个名为MAGIC的SQL函数,它返回一个数字的神奇值。

进一步假设我想编写一个SQL查询,它将返回SQL表中的数字列表及其神奇值。

我的直觉是写

SELECT number, MAGIC(number) FROM NUMBERS;

但是,这会返回错误消息`MAGIC不是可识别的函数名称。我怎样才能做到这一点?

编辑:看起来MAGIC被设置为表值函数,即使它只返回一个值。我的DBA不会让我访问任何数据库功能代码,因此我必须以这种方式使用它。

3 个答案:

答案 0 :(得分:5)

如果它是标量值函数,则在TSQL中完全限定您的函数:

SELECT number, dbo.MAGIC(number) FROM NUMBERS;

答案 1 :(得分:1)

如果它是一个表值函数,那么就这样做:

SELECT n.number, mn.number FROM numbers as n CROSS JOIN dbo.Magic(n.number) as mn

答案 2 :(得分:0)

尝试使用像字段一样的函数......这适用于TSQL。

SELECT number,
-- start function
(SELECT function_field_name FROM dbo.MAGIC(number)) AS magic_number
-- end function 
FROM dbo.NUMBERS