Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 声明varchar视图问题_Sql_Sql Server 2005 - Fatal编程技术网

Sql 声明varchar视图问题

Sql 声明varchar视图问题,sql,sql-server-2005,Sql,Sql Server 2005,我有下面的代码,我想变成一个视图。但是,我不能在视图中声明varchar 有人能给我们建议一个解决这个问题的方法吗 Sql代码- DECLARE @PROJECTNUMBER VarChar SELECT SUM(PAFeeAmount) FeeAmount FROM PA02101 WHERE PAPROJNUMBER = @PROJECTNUMBER 谢谢,如果需要变量,请改用表值函数: 如果需要变量,请改用表值函数: 如果试图将参数传递给视图,则不能这

我有下面的代码,我想变成一个视图。但是,我不能在视图中声明varchar

有人能给我们建议一个解决这个问题的方法吗

Sql代码-

DECLARE @PROJECTNUMBER VarChar
SELECT     SUM(PAFeeAmount) FeeAmount
FROM          PA02101
WHERE      PAPROJNUMBER = @PROJECTNUMBER

谢谢,

如果需要变量,请改用表值函数:


如果需要变量,请改用表值函数:


如果试图将参数传递给视图,则不能这样做。在从视图中选择时,只需使用Group By和filter按如下方式进行查看

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

如果试图将参数传递给视图,则不能这样做。在从视图中选择时,只需使用Group By和filter按如下方式进行查看

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
尝试创建一个内联表值函数。例如:

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')
尝试创建一个内联表值函数。例如:

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')

您不能在视图中执行此操作,只需在没有WHERE子句的情况下执行此操作,然后从视图中筛选选择:SELECT*from Viewname WHERE…为什么要在视图中执行此操作?您不能在视图中执行此操作,只需在不使用WHERE子句的情况下对视图中的选择进行过滤:SELECT*from Viewname WHERE…为什么要在视图中使用此选项?