向变量赋值的 SELECT 语句不能与数据检索操作结合使用。急!!!

fengziba 2009-08-06 11:37:25
这段代码在存储过程中为啥不能执行呢?总是报向变量赋值的 SELECT 语句不能与数据检索操作结合使用.脱离存储过程是可以执行的。
CREATE PROCEDURE selectindex
@indexzhi varchar,
@pid int,
@prname varchar(500)
AS
BEGIN
SELECT distinct g.id, @prname=g.productName, g.sort, g.dirType,
i.title
FROM Goods g ,
indexProduct i where g.id = i.pid and i.indexk like @indexzhi+'%' order by g.sort
IF (@prname is null)
SELECT distinct g.id, @prname=g.productName, g.sort, g.dirType,
i.title
FROM Goods g ,
indexProduct i where g.id = i.pid and i.indexk like '%'+@indexzhi+'%' order by g.sort
ELSE
SELECT distinct g.id, @prname=g.productName, g.sort, g.dirType,
i.title
FROM Goods g ,
indexProduct i where g.id = i.pid and i.indexk like ''+@indexzhi+'%' order by g.sort

END
...全文
680 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengziba 2009-08-06
  • 打赏
  • 举报
回复
这样是不是可以就判断这条语句是不是空记录了啊
sdhdy 2009-08-06
  • 打赏
  • 举报
回复
楼主的意思应该是比较:@prname=g.productName 吧?
fengziba 2009-08-06
  • 打赏
  • 举报
回复
恩 知道了 谢谢啊~
高人就是多
sdhdy 2009-08-06
  • 打赏
  • 举报
回复
CREATE PROCEDURE selectindex 
@indexzhi varchar,
@pid int,
@prname varchar(500)
AS
BEGIN
--@pid貌似没用上。
if not exists(SELECT g.productName FROM Goods g ,
indexProduct i where g.id = i.pid and i.indexk like @indexzhi+'%' and @prname=g.productName )

SELECT distinct g.id, g.productName, g.sort, g.dirType, i.title
FROM Goods g , indexProduct i where g.id = i.pid and i.indexk like '%'+@indexzhi+'%' order by g.sort
ELSE
SELECT distinct g.id, g.productName, g.sort, g.dirType,
i.title
FROM Goods g ,
indexProduct i where g.id = i.pid and i.indexk like ''+@indexzhi+'%' and @prname=g.productName order by g.sort

END
fengziba 2009-08-06
  • 打赏
  • 举报
回复
@prname=g.productName 这就是赋值啊
gw6328 2009-08-06
  • 打赏
  • 举报
回复
我没看出来赋值。。。高手指点
xuejie09242 2009-08-06
  • 打赏
  • 举报
回复
是不同时既赋值又查询的。因为查询可能会有多条记录。
fengziba 2009-08-06
  • 打赏
  • 举报
回复
那我应该怎么写啊 我想查出
SELECT distinct g.id, g.productName, g.sort, g.dirType,
i.title
FROM Goods g ,
indexProduct i where g.id = i.pid and i.indexk like @indexzhi+'%' order by g.sort
这个结果集是不是空 如果不是空就原样显示 如果是空 就在模糊查询处在加一个%
gw6328 2009-08-06
  • 打赏
  • 举报
回复
这样选出来的不是两个表了吗?
csdyyr 2009-08-06
  • 打赏
  • 举报
回复
不可以这样用的。
xiequan2 2009-08-06
  • 打赏
  • 举报
回复
select不能同时赋值和检索数据

34,876

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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