| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4647 人关注过本帖
标题:访问SQL Server 数据库 SQL语句 如何使用 IF 条件
只看楼主 加入收藏
MXG825
Rank: 1
等 级:新手上路
帖 子:30
专家分:4
注 册:2008-9-17
结帖率:83.33%
收藏
 问题点数:0 回复次数:5 
访问SQL Server 数据库 SQL语句 如何使用 IF 条件
Sql = "select 日期,摘要,iif(借贷标志,金额,金额*-1) from vouch where 日期 between '2010-10-26' and '2010-11-20'"

在一张表中vouch表中几列字段,一列字段是金额,一列是借贷标志(值为true或false),我现在是重新在此表上直接把金额那列按正负数取出来

金额那列全是正数,没有负数的。如果借贷标志那列是True的话,就为金额那列的数。如果借贷标志是false的话就为金额*-1

这语句在VB 访问ACC 数据库可以用

如何改成 访问SQL Server 数据库
搜索更多相关主题的帖子: SQL 数据库 Server 语句 条件 
2010-11-21 16:16
hbsstt
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-11-21
收藏
得分:0 
回复 楼主 MXG825
在excel的vba 中用ado访问工作表中的表,用iif()也是直接可以转换的.在sqlserver中好象确实不行,不知道为啥?
2010-11-21 16:30
aei135
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:232
专家分:1176
注 册:2009-4-6
收藏
得分:0 
借贷标志数据类型是bit的吧?SQL用CASE WHEN 就行
select 日期,摘要,CASE WHEN 借贷标志=1 THEN 金额 ELSE 金额*(-1) END 金额 from vouch where 日期 between '2010-10-26' and '2010-11-20'

2010-11-22 15:27
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
SQL Server中根本就不存在这个IIF()可以使用CASE函数

★★★★★为人民服务★★★★★
2010-11-22 19:35
hbsstt
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-11-21
收藏
得分:0 
回复 4楼 cnfarer
提示when附近有语法错误。我的这个是excel 的vba环境卫,有人说好象excel的vba不支持case啊啥的。咋办呢?
2010-11-23 13:34
hbsstt
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-11-21
收藏
得分:0 
以下是引用aei135在2010-11-22 15:27:48的发言:

借贷标志数据类型是bit的吧?SQL用CASE WHEN 就行
select 日期,摘要,CASE WHEN 借贷标志=1 THEN 金额 ELSE 金额*(-1) END 金额 from vouch where 日期 between '2010-10-26' and '2010-11-
可以了,谢谢了啊!
2010-11-23 13:41
快速回复:访问SQL Server 数据库 SQL语句 如何使用 IF 条件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014648 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved