【发布时间】:2016-04-17 09:42:27
【问题描述】:
我的 DB2 数据库的表中有以下记录:
num f1 f2 f3
------------------------
*** e1 e2 e3
A e1 e2 e3
*** e4 e5 e6
每行的“键”(非主键)由字段 f1、f2 和 f3 组合而成。 我必须按照此规则获取行:如果一个键有多行,我必须选择字段“num”不包含值“***”的行。否则,如果键是唯一的,我必须选择行。
在我的示例中,我应该为键 e1、e2、e3 返回“A”,为键 e4、e5、e6 返回“***”
我通过使用临时表使其工作,我在其中插入正确的行,同时使用游标读取主表。但它很慢,非常慢。
有没有办法只使用一个 SQL 查询来获取正确的记录,或者使用 C# 程序(我的应用程序使用的语言)?我尝试使用 Datatables 和 LINQ,但没有成功。
感谢您的帮助
【问题讨论】:
-
Otherwise, if the key is unique, I must select the row其他情况呢?不是***的非唯一值?