access 中 "SELECT * FROM abcDB WHERE bh="&编号&"' and iif(len(ry)>0," ry='"&人员&"', 1=1)"
sql中 "SELECT * FROM abcDB WHERE bh="&编号&"' and case when len(ry)>0 then ry='"&人员&"' else 1=1 end "
在access中 iif 判断后, 给出的是条件语句
在sql中 对应的是什么函数 ? case when else end 好像只是给出结果值 ,不能是条件语句
这个问题第1个回答:
iif(这是条件,真就执行这里,假就执行这里)
这个问题第2个回答:
iff在Access中正常的,但在SQL中无法得到正确值。
这个问题第3个回答:
select T1, T2, CASE WHEN 条件A THEN 结果A WHEN 条件B THEN 结果B WHEN 条件C THEN 结果C . . . . END AS 新的字段名 from table T1
这个问题第4个回答:
case when 1>2 then 'right' else 'left' end case enumvalue when 1 then 'right' when 2 then 'left' else 'forward' end
难道不能实现吗?
这个问题第5个回答:
忘记了~ CASE WHEN 条件A THEN 结果A WHEN 条件B THEN 结果B WHEN 条件C THEN 结果C . . . . else 其它 END AS 新的字段名 这个问题第6个回答:
declare @SQL varchar(1000), @bh varchar(10), @ry varchar(10) set @bh='1022' set @ry='1001' set @sql='select * from abcdb where bh='''+@bh+''' and '+ case when len(@ry)>0 then 'ry='''+@ry+'''' else '1=1' end exec(@sql)
这个问题第7个回答:
重要的是在一条语句中实现 上面语句 iif 实现的是条件判断和条件语句 如果人员为空查询人员等于变量。否者就1=1 case when ... 无法实现条件查询
这个问题第8个回答:
我是用在ASP页面中的 SQL查询
这个问题第9个回答:
如果是在ASP中,不是更好实现吗?
这个问题第10个回答:
commandtext="select * from abcdb where bh='" & 人员 & "' and isnull(ry,'')=case when len(ry)>0 then '" & 人员 & "' else isnull(ry,'')" 速度可能慢一点
这个问题第11个回答:
Access里的查询可以是 VBA 结合 JetSQL 一起使用.
IIF本身就是VBA的函数,T-SQL跟它对应的也就是CASE WHEN了.
转换的方法见6楼的。
这个问题第12个回答:
谢谢,的确速度比较慢,不过这个方法可行
这个问题第13个回答:
测试后,没有错误,但结果不正确。引用 10 楼 zheninchangjiang 的回复
这个问题第14个回答:
commandtext="select * from abcdb where bh='" & 编号 & "' and ((len(ry)>0 and ry='" & 人员 & "') or isnull(ry,'')='')" SQL中要注意NULL值,这个和access中可能会有很大的不同之处.