关于sql存储过程中的不等于问题

zjbsaber 2003-12-01 09:58:57
在存储过程中的where条件里的不等于用什么来表示啊 用符号<>没有反应
不等于空可以用is not null来表示 可当不等于一个变量呢
就像一批人事资料重要查询不等于女的 怎么表示
...全文
1125 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjbsaber 2003-12-02
  • 打赏
  • 举报
回复
我左右空格都去了 都没有用 照你这么说可能是我的sql7。0有问题了
zjbsaber 2003-12-02
  • 打赏
  • 举报
回复
请问你那个N是何用意呢
leimin 2003-12-02
  • 打赏
  • 举报
回复
try:

where rtrim(isnull(性别,'')) <> N'女'
zjbsaber 2003-12-01
  • 打赏
  • 举报
回复
用了上面两个大师推荐的 没反应跟用<>效果一样不起作用
zjbsaber 2003-12-01
  • 打赏
  • 举报
回复
还是不行啊
pengdali 2003-12-01
  • 打赏
  • 举报
回复
where rtrim(isnull(性别,'')) <> '女'
zjbsaber 2003-12-01
  • 打赏
  • 举报
回复
当然不是性别了 我是举个例子
victorycyz 2003-12-01
  • 打赏
  • 举报
回复
如果是性别,用不等于不合适吧,就两个值,最好用等于‘男’,来得更有效率。
zjbsaber 2003-12-01
  • 打赏
  • 举报
回复
没用啊 还是没有起作用
txlicenhe 2003-12-01
  • 打赏
  • 举报
回复
where isnull(性别,'') <> '女'
xhwly 2003-12-01
  • 打赏
  • 举报
回复
1.可能是你數據本身就有問題,
例如:可能你的數據類型為char(5), 則其值實為'女 ',(注意后面的空格)
用 where ltrim(rtrim(isnull(性别,''))) <> '女' 肯定是可以的.

2.可能是where not( ltrim(rtrim(isnull(性别,''))) = '女')寫成了
where ltrim(rtrim(isnull(性别,''))) <> '女 '(注意后面不要有空格)



wwjwang 2003-12-01
  • 打赏
  • 举报
回复
where not( ltrim(rtrim(isnull(性别,''))) = '女')
dlpseeyou 2003-12-01
  • 打赏
  • 举报
回复
where rtrim(isnull(性别,''))!= '女'
zjbsaber 2003-12-01
  • 打赏
  • 举报
回复
是一致的阿 我用的是sql7.0 我是说单独执行你那句sql语句的时候是没有问题的
但放到存储过程里就不行了
atlasGS 2003-12-01
  • 打赏
  • 举报
回复
不明白,我一直用的好好的。包括存储过程。检查一下你的变量的长度和实际的长度是否一致。
可能是不一致造成的。
zjbsaber 2003-12-01
  • 打赏
  • 举报
回复
这个方法在管理器里执行可以 但写在存储过程里就不行了
atlasGS 2003-12-01
  • 打赏
  • 举报
回复
declare @s int
set @s=1
create table t(isd int)
insert into t
select 1
union
select 2
union
select 3

select * from t where isd<>@s
select * from t
drop table t
zjbsaber 2003-12-01
  • 打赏
  • 举报
回复
怎么没反应了 大家再帮我想想办法啊

22,209

社区成员

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

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