为什么我这个查询语句没用啊

lanxundesign 2004-04-01 10:58:35
declare @i int , @j varchar
select @i=grade,@j=dept_code from deptcode(dept_code 类型是VARCHAR(20))
where dept_code= :部门代码 (:部门代码 是我要输入的字段)

if(@j=null and @j='021')
BEGIN
Select DEPT_CODE as '部门代码1'
,CONTENT as '部门代码'
from DEPTCODE
Where
(DEPT_CODE like :部门代码+'%' and grade=@i+1)
order by dept_code
END
else
BEGIN
Select DEPT_CODE as '部门代码1'
,CONTENT as '部门代码'
from DEPTCODE
Where
(DEPT_CODE like :部门代码+'%' )
order by dept_code
END

当我输入部门代码为021时,这个查询语句竟然不会跳转,直接执行后面的程序,郁闷死我了,请高手帮忙下,小弟谢谢了~~

...全文
81 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanxundesign 2004-04-01
  • 打赏
  • 举报
回复
呵呵 我自己的粗心
把AND 改成 OR
谢谢三位了
zjcxc 元老 2004-04-01
  • 打赏
  • 举报
回复
SQL中,判断是否NULL要用 is null
zjcxc 元老 2004-04-01
  • 打赏
  • 举报
回复
if(@j=null and @j='021')

改为:

if(@j is null and @j='021')
poormsteven 2004-04-01
  • 打赏
  • 举报
回复
if(@j=null and @j='021')可能这个记录grade为空,同时部门为021,这是这个表达式为true,当然执行后面的语句
klan 2004-04-01
  • 打赏
  • 举报
回复
try:
declare @i int , @j varchar
set @j='021'--:部门代码 (:部门代码 是我要输入的字段)

select @i=grade from deptcode--(dept_code 类型是VARCHAR(20))
where dept_code= @j
lanxundesign 2004-04-01
  • 打赏
  • 举报
回复
晕 上午搞好了,下午为什么还又不能跳转了~~
请高手们 再给分析一下
我把AND 已经改成 OR了
xiangsu 2004-04-01
  • 打赏
  • 举报
回复
來晚了...

34,872

社区成员

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

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