关于sql存储过程中的不等于问题
在存储过程中的where条件里的不等于用什么来表示啊 用符号<>没有反应
不等于空可以用is not null来表示 可当不等于一个变量呢
就像一批人事资料重要查询不等于女的 怎么表示
问题点数:0、回复次数:18Top
1 楼txlicenhe(马可)回复于 2003-12-01 10:00:48 得分 0
where isnull(性别,'') <> '女'
Top
2 楼zjbsaber(波波)回复于 2003-12-01 10:12:27 得分 0
没用啊 还是没有起作用Top
3 楼victorycyz(--)回复于 2003-12-01 10:13:18 得分 0
如果是性别,用不等于不合适吧,就两个值,最好用等于‘男’,来得更有效率。Top
4 楼zjbsaber(波波)回复于 2003-12-01 10:15:06 得分 0
当然不是性别了 我是举个例子Top
5 楼pengdali()回复于 2003-12-01 10:19:53 得分 0
where rtrim(isnull(性别,'')) <> '女'Top
6 楼zjbsaber(波波)回复于 2003-12-01 10:33:47 得分 0
还是不行啊Top
7 楼zjbsaber(波波)回复于 2003-12-01 11:27:24 得分 0
用了上面两个大师推荐的 没反应跟用<>效果一样不起作用Top
8 楼zjbsaber(波波)回复于 2003-12-01 15:04:54 得分 0
怎么没反应了 大家再帮我想想办法啊Top
9 楼tsqgw2001(程式猎人)回复于 2003-12-01 15:32:11 得分 0
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 tTop
10 楼zjbsaber(波波)回复于 2003-12-01 16:19:48 得分 0
这个方法在管理器里执行可以 但写在存储过程里就不行了Top
11 楼tsqgw2001(程式猎人)回复于 2003-12-01 16:28:08 得分 0
不明白,我一直用的好好的。包括存储过程。检查一下你的变量的长度和实际的长度是否一致。
可能是不一致造成的。Top
12 楼zjbsaber(波波)回复于 2003-12-01 17:03:01 得分 0
是一致的阿 我用的是sql7.0 我是说单独执行你那句sql语句的时候是没有问题的
但放到存储过程里就不行了Top
13 楼dlpseeyou(豆子)回复于 2003-12-01 17:12:17 得分 0
where rtrim(isnull(性别,''))!= '女'Top
14 楼wwjwang(类猿人)回复于 2003-12-01 17:50:05 得分 0
where not( ltrim(rtrim(isnull(性别,''))) = '女')Top
15 楼xhwly(wly)回复于 2003-12-01 20:03:37 得分 0
1.可能是你數據本身就有問題,
例如:可能你的數據類型為char(5), 則其值實為'女 ',(注意后面的空格)
用 where ltrim(rtrim(isnull(性别,''))) <> '女' 肯定是可以的.
2.可能是where not( ltrim(rtrim(isnull(性别,''))) = '女')寫成了
where ltrim(rtrim(isnull(性别,''))) <> '女 '(注意后面不要有空格)
Top
16 楼zjbsaber(波波)回复于 2003-12-02 11:30:19 得分 0
我左右空格都去了 都没有用 照你这么说可能是我的sql7。0有问题了Top
17 楼leimin(黄山光明顶)回复于 2003-12-02 13:55:21 得分 0
try:
where rtrim(isnull(性别,'')) <> N'女'
Top
18 楼zjbsaber(波波)回复于 2003-12-02 15:30:40 得分 0
请问你那个N是何用意呢Top




