以下 的SQL语句 在VB环境中对 SQL SERVER 2000 数据库 进行查询时出错,显示“Isnull 函数要求2个参数”;但是同样的语句, 在VB环境中对 ACCESS 2003 数据库(两个数据库的表的内容是一样的) 进行查询时却能正常运行。
请大家帮忙解决这个问题,谢谢大家!
Sql = "select 合同编号,IIF(isnull(结算金额) or 结算金额='',合同金额,结算金额) as 工程造价,IIF(isnull(结算金额) or 结算金额='','合同价','结算价') as 造价性质,备注 from 数据集 where 所属项目 like '%" & MyTxt & "%' "
请大家帮忙解决这个问题,谢谢大家!
Sql = "select 合同编号,IIF(isnull(结算金额) or 结算金额='',合同金额,结算金额) as 工程造价,IIF(isnull(结算金额) or 结算金额='','合同价','结算价') as 造价性质,备注 from 数据集 where 所属项目 like '%" & MyTxt & "%' "
解决方案 »
- VB datagrid显示多个 DBF 表
- 本人用vb写的一个控制机器程序运行的程序1
- 有什么办法能让监控的数据实时保存到服务器的数据中而不占用数据库太大的资源呢?
- 最大的IT网校,更好的学习,让我们一起努力
- 求助:怎么样在ActiveBar控件的菜单中加入最近使用文件??
- 如何在同一个数据表内将选定的记录复制到新添加的记录中?
- 网页上activex不显示,各位大虾请帮忙
- 请yunok(★ 杨云鹏,用VB,向高手们学习! ★) 近来领分!谢谢!
- 如何让粘贴excel单元格的textbox后面不显示回车符和换行符的空格?
- 无法POST图片,困扰了我三天了,只能求助各位大神了!
- 如何解决对 SQL SERVER 进行查询时出现错误提示:'IIf' 不是可以识别的函数名?
- 新手问个关于重填按钮问题。
在 VB 环境 中对 SQL SERVER 2000 数据库进行这样的查询,代码应该如何写?谢谢大家!
case
when isnull(结算金额,'')='' then 合同金额
else 结算金额
end as 工程造价
from ....应该是这样吧
应该如何解决这个问题?谢谢大家!
Sql = "select 合同编号,IIF(isnull(结算金额) or 结算金额='',合同金额,结算金额) as 工程造价,IIF(isnull(结算金额) or 结算金额='','合同价','结算价') as 造价性质,备注 from 数据集 where 所属项目 like '%" & MyTxt & "%' "
你在程序里面连接ACCESS数据库用Jet引擎,支持iif(,,)和isnull()函数
而SQL Server里面不支持 只能用select...case...和 isnull( , )
SQL server不要用iif,直接isnull(结算金额,0)就行了
另NULL不是空的意思
根据楼主的意思应该是
Sql = "select 合同编号,IIF(is null(结算金额) or 结算金额='',合同金额,结算金额) as 工程造价,IIF(is null(结算金额) or 结算金额='','合同价','结算价') as 造价性质,备注 from 数据集 where 所属项目 like '%" & MyTxt & "%' "
你可以试试,另外介绍你用命令的参考途径,去看SQL的联机丛书,会有帮助的
楼主要求可case when ...end 法实现:
Sql = "select 合同编号,工程造价=Case when isnull(结算金额) then 合同金额 when not isnull(结算金额) then 结算金额 end, 备注 from 数据集 where 所属项目 like '%" & MyTxt & "%' "
x=IsNull(M) if(M==null) x=true else x=false在SQL200中的:
x=IsNull(M,0) if(M==null) x=0 else x=M
同样会出现同样的错误提示,请大家帮忙再改正错误,谢谢大家!