菜问题,立结贴!

feeling_68 2003-12-19 05:25:20
//可以直接看where语句后的条件
select distinct wa_data.pk_wa_data , wa_data.psnid , wa_data.psnclid , wa_data.deptid , wa_data.istopflag , bd_psndoc.psncode 人员编码, bd_psndoc.psnname 人员姓名, bd_deptdoc.deptname 所在部门, bd_psncl.psnclassname 人员类别, wa_data.classid , wa_data.cyear , wa_data.cperiod , wa_data.irecaculateflag , bd_accpsndoc.id , bd_accpsndoc.ssnum , bd_accpsndoc.timecardid , wa_data.f_101 职位系列, wa_data.f_102 职位等级, wa_data.f_15 职位工资, wa_data.f_17 绩效基数, wa_data.f_16 绩效工资考核计发额, wa_data.f_27 其它补贴, wa_data.f_25 其他, wa_data.f_36 应发工资合计, wa_data.f_20 养老统筹, wa_data.f_22 住房公积, wa_data.f_23 教育基金, wa_data.f_26 工会会费, wa_data.f_33 个人所得税, wa_data.f_24 扣款1, wa_data.f_38 扣款2, wa_data.f_29 奖金, wa_data.f_37 实发工资合计
from wa_data , bd_psndoc , bd_psncl , bd_deptdoc , bd_accpsndoc ,wa_psn
where wa_data.classId = '1001AA100000000004F6'
and wa_data.cyear = '2003'
and wa_data.cperiod = '12'
and wa_data.psnid = bd_psndoc.pk_psndoc
and wa_data.psnclid = bd_psncl.pk_psncl
and wa_data.deptid = bd_deptdoc.pk_deptdoc
and wa_data.psnid = bd_accpsndoc.pk_psndoc
and wa_data.dr = 0
and wa_data.istopflag = 0
and wa_data.psnid = wa_psn.psnid
--
and ltrim(rtrim(wa_psn.vacccode)) = ''
//返回165行

将 and ltrim(rtrim(wa_psn.vacccode)) = '' 改为 <> ''
//返回160行
//但我希望的是要那5行的,这是怎么回事啊?(vacccode是varchar(50)的)

...全文
45 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
txlicenhe 2003-12-19
  • 打赏
  • 举报
回复
测试:
create table t1(a varchar(10),b int)
insert t1 values('',1)
insert t1 values('a',2)
insert t1 values('b',3)
insert t1 values(null,4)

select * from t1 where ltrim(rtrim(a)) = ''
select * from t1 where IsNull(a,'') = ''
select * from t1 where ltrim(rtrim(a)) <> ''
select * from t1 where IsNull(a,'') <> ''

a b
---------- -----------
1

(所影响的行数为 1 行)

a b
---------- -----------
1
NULL 4

(所影响的行数为 2 行)

a b
---------- -----------
a 2
b 3

(所影响的行数为 2 行)

a b
---------- -----------
a 2
b 3

(所影响的行数为 2 行)

feeling_68 2003-12-19
  • 打赏
  • 举报
回复
谢谢,
不行的,这个我试过了。
bcmhts 2003-12-19
  • 打赏
  • 举报
回复
and ltrim(rtrim(wa_psn.vacccode)) is null
你试试看行不行
feeling_68 2003-12-19
  • 打赏
  • 举报
回复
对new_life(浮云游子) :
  有关系啊,
  很急!!!
  请帮忙看看。。
new_life 2003-12-19
  • 打赏
  • 举报
回复
你的Sql有问题吧,怎么没有关系阿
feeling_68 2003-12-19
  • 打赏
  • 举报
回复
不加下面的语句,返回是165行
而加上
and ltrim(rtrim(wa_psn.vacccode)) = ''
//返回165行,所有行(我希望的是只返回5行)

将 and ltrim(rtrim(wa_psn.vacccode)) = '' 改为 <> ''
//返回160行
这是怎么回事啊?(vacccode是varchar(50)的)
azsoft 2003-12-19
  • 打赏
  • 举报
回复
看不明白?

34,591

社区成员

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

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