Access里的Case效果 解决“IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败!”问题!

我用的是access数据库。为了实现数据表里的1表示"通过",0表示"未通过",我在读取数据的时候将数据进行转变!在查询分析器里通过了sql语句:
select *,Text_Status=case [Value] when 'Name' then '姓名' else 'other' end from CaXun

将这段语句考到代码里,想用在sql里行得通的语句在access里操作!结果出现了如下错误:IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败!

上网搜索了一下"E_FAIL",找到这个错误的解决办法:就是将是access的关键字的字段名用"[]"括起来!但是我这个语句里没什么关键字的字段名我没[]起来的啊?!没办法,再找!查"access case",原来在access里是不支持"case"的语句的!郁闷,为什么同是微软的东西,同是sql语句,怎么就不把之变的通用一点呢!?

后来将"case"语句改用"iif"函数,问题解决了!实现上述效果的sql语句如下:
select *,iif([Value]='Name', '姓名', 'other') as Text_Status from CaXun

你可能感兴趣的:(Access)