假设我有一个名为MAGIC
的SQL函数,它返回一个数字的神奇值。
进一步假设我想编写一个SQL查询,它将返回SQL表中的数字列表及其神奇值。
我的直觉是写
SELECT number, MAGIC(number) FROM NUMBERS;
但是,这会返回错误消息`MAGIC不是可识别的函数名称。我怎样才能做到这一点?
编辑:看起来MAGIC被设置为表值函数,即使它只返回一个值。我的DBA不会让我访问任何数据库功能代码,因此我必须以这种方式使用它。
答案 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