我有下面的代码,我想变成一个视图。但是我不能在视图中声明varchar。声明varchar查看问题
任何人都可以在此方面提供建议吗?
Sql代码 -
DECLARE @PROJECTNUMBER VarChar
SELECT SUM(PAFeeAmount) FeeAmount
FROM PA02101
WHERE PAPROJNUMBER = @PROJECTNUMBER
感谢,
我有下面的代码,我想变成一个视图。但是我不能在视图中声明varchar。声明varchar查看问题
任何人都可以在此方面提供建议吗?
Sql代码 -
DECLARE @PROJECTNUMBER VarChar
SELECT SUM(PAFeeAmount) FeeAmount
FROM PA02101
WHERE PAPROJNUMBER = @PROJECTNUMBER
感谢,
尝试创建一个inline table-valued
函数。例如:
CREATE FUNCTION dbo.fxSample(@PROJECTNUMBER VARCHAR(20))
RETURNS TABLE
AS
RETURN
(
SELECT SUM(PAFeeAmount) FeeAmount
FROM PA02101
WHERE PAPROJNUMBER = @PROJECTNUMBER
)
-- Then call like this, just as if it's a table/view just with a parameter
SELECT * FROM dbo.fxSample('hello')
如果你需要的变量,改为使用表值函数:
http://msdn.microsoft.com/en-us/library/ms191165(v=sql.105).aspx
如果你想传递参数( s)到VIEW
,你不能那样做。在视图选择过程中,使用分组依据和过滤器简单地进行如下视图。
CREATE VIEW myView
AS
SELECT PAPROJNUMBER, SUM(PAFeeAmount) FeeAmount
FROM PA02101
GROUP BY PAPROJNUMBER
--Select like below. (may be passing it to a stored procedure)
declare @projectNumber varchar(50) --remember to give a length
select * from myView
where projectNumber = @projectNumber
你不能在视图内部做到这一点,只是让它没有'WHERE'子句,然后过滤从视图选择:'SELECT * FROM Viewname where ...'。 – 2013-02-19 14:52:27
为什么你想要在视图中? – HLGEM 2013-02-19 14:54:23