DataView dv=new DataView();
dv.RowFilter="3=case when charindex('-',sid)>0 then left(sid,charindex('-',sid)-1) else sid end";
错误提示: when 后面缺少操作数.但是CASE WHEN用在查询分析器里头是对的.
在C#里头写为何就不行了呢?
请问,有什么办法吗?
dv.RowFilter="3=case when charindex('-',sid)>0 then left(sid,charindex('-',sid)-1) else sid end";
错误提示: when 后面缺少操作数.但是CASE WHEN用在查询分析器里头是对的.
在C#里头写为何就不行了呢?
请问,有什么办法吗?
第一:RowFilter相当与Where后面的语句,而case when根本不能作为Where后面的选择条件。第二:case when在C#中不支持,关于RowFilter可以参考MSDN:ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemdatadatacolumnclassexpressiontopic.htm
那你能不能告诉我如何才能将DV中满足
3=case when charindex('-',sid)>0 then left(sid,charindex('-',sid)-1) else sid end
的记录找出来呢?SID的值例如这样:
2
3-1
4-3
4
5
3-2
将-之前或没-的时候就全部取出来。
得到:
2
3
4
4
5
3