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 好像只是给出结果值 ,不能是条件语句
T1,
T2,
CASE
WHEN 条件A THEN 结果A
WHEN 条件B THEN 结果B
WHEN 条件C THEN 结果C
.
.
.
.
END AS 新的字段名
from table T1
case enumvalue when 1 then 'right'
when 2 then 'left'
else 'forward' end难道不能实现吗?
CASE
WHEN 条件A THEN 结果A
WHEN 条件B THEN 结果B
WHEN 条件C THEN 结果C
.
.
.
.
else 其它
END AS 新的字段名
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)
上面语句 iif 实现的是条件判断和条件语句
如果人员为空查询人员等于变量。否者就1=1
case when ... 无法实现条件查询
速度可能慢一点
Access里的查询可以是 VBA 结合 JetSQL 一起使用.IIF本身就是VBA的函数,T-SQL跟它对应的也就是CASE WHEN了.转换的方法见6楼的。
SQL中要注意NULL值,这个和access中可能会有很大的不同之处.