看看能有几种方发

wer123q 2008-12-13 10:49:27
/*
这里有一个表,我要实现的目的是,通过输入一个VID参数,如果这个参数为空就查询所有记录,如果不为空就查询,这个参数
的值(不能用动太语句)
*/

create table sel(
VID int,
Vname varchar,
)
insert into sel select 1,'aa'
union all select 2 , 'bb'
union all select 3 , 'cc'
...全文
65 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
炸弹宝宝 2008-12-15
  • 打赏
  • 举报
回复
code=SQL]
DECLARE @sql NVARCHAR(200);

SET @sql = 'SELECT * FROM sel where 0=0 '
IF @ID IS NOT NULL
SET @sql = @sql + ' AND vid = ' + CAST(@VID as nvarchar);
execute (@sql);[/code]
kobe8tn 2008-12-15
  • 打赏
  • 举报
回复



select * from sel where @vid is null or vid=@vid




worlddba 2008-12-15
  • 打赏
  • 举报
回复
wer123q 2008-12-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 szx1999 的回复:]
SQL code
create table sel(
VID int,
Vname varchar(2),
)
insert into sel select 1,'aa'
union all select 2 , 'bb'
union all select 3 , 'cc'

declare @vid int
--set @vid=1
--1.(推荐)
if isnull(@vid,0)>0
select * from sel
else
select * from sel where vid=@vid

--2.(vid有非空约束时)
select * from sel where vid=isnull(@vid,vid)


drop table sel


[/Quote]
蓉儿 果然厉害
等不到来世 2008-12-13
  • 打赏
  • 举报
回复
create table sel(
VID int,
Vname varchar(2),
)
insert into sel select 1,'aa'
union all select 2 , 'bb'
union all select 3 , 'cc'

declare @vid int
--set @vid=1
--1.(推荐)
if isnull(@vid,0)>0
select * from sel
else
select * from sel where vid=@vid

--2.(vid有非空约束时)
select * from sel where vid=isnull(@vid,vid)


drop table sel
wer123q 2008-12-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kapjunlin 的回复:]
select VID from sel where VID like '%'+值+'%'
[/Quote]

那我要查所有怎么办
113244 2008-12-13
  • 打赏
  • 举报
回复
select VID from sel where VID like '%'+值+'%'
113244 2008-12-13
  • 打赏
  • 举报
回复
select VID from sel where VID like '%'+值+'%'
jiangshun 2008-12-13
  • 打赏
  • 举报
回复
怎么不到程序中写sql语句?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧