教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 数据库类教程 · MSSQL教程 · MsSql综合技巧

Access 中地iif语句在 SQL怎么用?(case when..无结果)

学院最新推荐文章
教程推荐
『Access 中地iif语句在 SQL怎么用?(case when..无结果)』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2008-9-20 
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个回答:
引用 10 楼 zheninchangjiang 的回复:
commandtext="select * from abcdb where bh='" & 人员 & "' and isnull(ry,'')=case when len(ry)>0 then '" & 人员 & "' else isnull(ry,'')"
速度可能慢一点


谢谢,的确速度比较慢,不过这个方法可行
这个问题第13个回答:
测试后,没有错误,但结果不正确。引用 10 楼 zheninchangjiang 的回复
这个问题第14个回答:
commandtext="select * from abcdb where bh='" & 编号 & "' and ((len(ry)>0 and ry='" & 人员 & "') or isnull(ry,'')='')"
SQL中要注意NULL值,这个和access中可能会有很大的不同之处.

作者:GhostTZS 来源:C.S.D.N
】【关闭窗口
·上页:
·下页:
相关文章
     数据库类教程 - MsSql综合技巧
普通教程【脑袋快想爆炸了- -!】 怎么样
普通教程关于级联删除地疑难,新手提问,
普通教程怎么样动态控制列数?
普通教程数据库恢复 MS2000
普通教程当数据库中varchar字段值为null
普通教程create function 怎么才无法要返
普通教程各位帮我看看是啥疑难啊, SQL运
普通教程SQL server 2005 安装疑难 SP2更
普通教程sql update
普通教程update触发器地疑难
普通教程字符串地查询疑难
普通教程安全性--登陆--想建一个用户tes
精彩图片汇集
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光