sql-声明的问题
我真的不知道这里出了什么问题sql-声明的问题,sql,declare,Sql,Declare,我真的不知道这里出了什么问题 USE [PRR_NEW] DROP FUNCTION [dbo].[fA_20] GO CREATE FUNCTION [dbo].[fA_20] ( @Id bigint = 10 ) RETURNS TABLE AS RETURN ( declare @m table ( VatIdGA nvarchar(16), VatIdCAT nvarchar(16) ); insert into @m (VatIdGA, VatIdC
USE [PRR_NEW]
DROP FUNCTION [dbo].[fA_20]
GO
CREATE FUNCTION [dbo].[fA_20]
(
@Id bigint = 10
)
RETURNS TABLE
AS
RETURN
(
declare @m table
(
VatIdGA nvarchar(16),
VatIdCAT nvarchar(16)
);
insert into @m (VatIdGA, VatIdCAT) values( 9, 8)
insert into @m (VatIdGA, VatIdCAT) values(11, 3)
insert into @m (VatIdGA, VatIdCAT) values(10, 5)
insert into @m (VatIdGA, VatIdCAT) values( 5, 9)
select vr.*, m.VatIdGA
from VatRate as vr
left outer join @m as m on m.VatIdCAT = vr.Id
问题是。。。有什么想法或解决方案吗?谢谢 从语法上看,这看起来像SQL Server。
如果是这样,这应该是可行的:
CREATE FUNCTION [dbo].[fA_20]
(
@Id bigint = 10
)
RETURNS TABLE
AS
RETURN
(
with m as
(
select VatIdGA, VatIdCAT
FROM (values(9, 8), (11, 3), (10, 5), ( 5, 9)) v(VatIdGA, VatIdCAT)
)
select vr.*, m.VatIdGA
from VatRate as vr
left outer join m on m.VatIdCAT = vr.Id
)
标记您正在使用的dbms。该代码是特定于产品的。