【发布时间】:2012-12-13 19:14:39
【问题描述】:
我们正在使用 VB .NET 和 2.0 .NET 框架连接到专有的 ODBC 源。我们正在提取余额字段(其中正值是借方,负值是贷方)以及其他信息。
以下查询不可能,因为不支持大小写:
Dim strQuery As String = "SELECT ACCOUNT_REF, " + _
"CASE WHEN [BALANCE] < 0 THEN BALANCE ELSE NULL END, " + _
"CASE WHEN [BALANCE] > 0 THEN BALANCE ELSE NULL END " + _
"FROM TABLE1 WHERE BALANCE <> 0"
我们可以在使用 DataSet 时将 Balance 列一分为二吗?如果有,有什么例子吗?
我们正在使用以下代码来构建我们的数据集(因为此专有实现不支持大小写):
Dim strQuery = "Select ACCOUNT_REF, BALANCE FROM TABLE1 WHERE BALANCE <> 0"
Using connection
Using adapter As New Odbc.OdbcDataAdapter(strQuery, connection)
Dim ds As New DataSet()
adapter.Fill(ds)
End Using
End Using
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
我很确定 case 语句中没有尾随大小写:
CASE WHEN [BALANCE] < 0 THEN BALANCE ELSE NULL END应该可以工作。 -
您的意思是执行类似“SELECT ACCOUNT_REF, BALANCE as DEBITS, BALANCE as CREDITS...”之类的操作吗?
-
我们也尝试过 - 谢谢 - 我们正在连接到 Sage Accounts 50。
-
没错,David - 我不太擅长 SQL,因为我主要使用 No-SQL 数据库。在不使用 CASE 的情况下使用 ODBC 是否可以轻松完成?
-
您是否有限制在 .NET 代码中将借方与贷方分开?