CREATE PROCEDURE GetVideo
(
@Top int,
@Strwhere varchar(200)
)
AS
declare @Sql varchar(500)
set rowcount @Top
set @Sql='select ID,UserID,Title,Logo,Url,Detail,CreateTime,Passed,Tj,Hit,Dig,Bury from Video where Passed=1 '+@Strwhere
exec (@Sql)
GO
想要查询出UserID不重复的26条记录
where后面该怎么写呢?
的处理规则是什么?
传的是什么?
where后面就是要自己传入进去的条件
该怎么写呢!
CREATE PROCEDURE GetVideo
(
@Top int,
@Strwhere varchar(200)
)
AS
declare @Sql varchar(500)
set rowcount @Top
set @Sql='select ID,
UserID,
Title,
Logo,
Url,
Detail,
CreateTime,
Passed,
Tj,
Hit,
Dig,
Bury
from Video t
where Passed=1
and not exists(select 1
from Video
where UserID=t.UserID and id>t.id) '+@Strwhere
exec (@Sql)
GO
还是不行额
执行了这一句
exec GetVideo 26,'AND Not EXISTS(SELECT 1 FROM Video T2 WHERE Passed=1 AND T2.CreateTime>CreateTime)'
CREATE PROCEDURE GetVideo
(
@Top int,
@Strwhere varchar(200)
)
AS
declare @Sql varchar(500)
set rowcount @Top
set @Sql='select ID,
UserID,
Title,
Logo,
Url,
Detail,
CreateTime,
Passed,
Tj,
Hit,
Dig,
Bury
from Video t
where Passed=1
and not exists(select 1
from Video
where UserID=t.UserID and CreateTime>t.CreateTime) '+@Strwhere
exec (@Sql)
GO
exec GetVideo 26,'AND Not EXISTS(SELECT 1 FROM Video T2 WHERE Video.Passed=1 AND T2.CreateTime>Video.CreateTime)'
可以在不改存储过程的情况下,在where直接加入不?
而且执行这一句后exec GetVideo1 26,'AND Tj=1'
会有三个显示额
刚显示三个是因为在查询分析器里还有两条语句忘了删了ls大侠
执行后显示
第 1 行: 'id' 附近有语法错误。
大侠,这样写只出现一条数据额,只出现一条UserID=1的数据,其他的没了额
UserID,
CreateTime,
Passed
from Video t
where Passed=1
and not exists(select 1
from Video
where UserID=t.UserID and CreateTime>t.CreateTime)
order by id这样的语句,我在查询中抽出的数据是符合楼主的要求的!
你是指同一个UserID的记录按时间降序么?