declare @Date DateTime
set @Date='2012-04-16'
select s.sid,'Status'=case a.sid when isnull(a.sid,null)
then 'absent' else 'present' end from
student s left outer join (select * from absent where date=@Date) as a
on s.sid=a.sid
我有这样的SQL查询,我需要用这个创建一个视图.....是否可能..
我为此创建了一个函数,如
CREATE FUNCTION dbo.Attendance (@Date DateTime)
RETURNS TABLE
AS
RETURN
(
select s.sid,'Status'=case a.sid when isnull(a.sid,null)
then 'absent' else 'present' end from
student s left outer join (select * from absent where date=@Date) as a
on s.sid=a.sid
)
视图创建成功....但是当我调用视图时
select * from dbo.Attendance('2012-04-11')
它会报告错误,例如"从字符串转换日期和/或时间时转换失败。" ......如何调用此函数
答案 0 :(得分:2)
MS Access中允许使用参数化视图,但没有严格的数据库服务器允许您构建需要强制参数的视图。
您的示例描述了一个存储过程,它应该是您需求的首选实现。
满足您的要求的另一种方法是将您的@Date参数保存在另一个表中,前提是视图可以引用该表,并且如果符合条件则返回一行
答案 1 :(得分:2)
答案 2 :(得分:1)
可以按照以下信息查看参数。 请访问以下链接:
https://msdn.microsoft.com/library/c11kd98s(v=vs.80).aspx
CREATE SQL VIEW Customer_Remote_View ;
AS SELECT * FROM Customers WHERE Customers.Country = ?cCountry