Sql DB2中基于列值顺序的查询
我在DB2中以以下方式得到了结果。但是,我希望根据与Y顺序匹配的列值来提取细节Sql DB2中基于列值顺序的查询,sql,db2,Sql,Db2,我在DB2中以以下方式得到了结果。但是,我希望根据与Y顺序匹配的列值来提取细节 Name Ind ---------------- syed N syed Y syed N shaik Y shaik N shaik N 输出应该是 shaik Y shaik N shaik N syed N syed Y syed N 以Y第一行作为指示符的名称值应位于第一行 任何想法这回答了问题的原始版本 这听起来像是按顺序排列的两个键:
Name Ind
----------------
syed N
syed Y
syed N
shaik Y
shaik N
shaik N
输出应该是
shaik Y
shaik N
shaik N
syed N
syed Y
syed N
以Y第一行作为指示符的名称值应位于第一行
任何想法这回答了问题的原始版本 这听起来像是按顺序排列的两个键:
order by name, ind desc
order by max(ind) over (partition by name) desc, -- names with 'Y's first
name,
ind desc
您的问题提示您可能希望在任何位置都将带有'Y'
的名称放在第一位,这表明并非所有名称都可能带有'Y'
。如果是这种情况,您可以按顺序使用窗口功能:
order by name, ind desc
order by max(ind) over (partition by name) desc, -- names with 'Y's first
name,
ind desc
@Gardon,我在更新我的问题。我的问题有点不同。Apologies@Syed . . . 在问题被回答后改变它是不礼貌的,尤其是以一种使答案无效且无法理解的方式。而且,数据库中没有创建日期,除非您在行中有明确的创建日期。我接受并为此道歉。但是,我误解了这个问题。@Syed。显然,如果表中只有这些列,您就不能做您想做的事情。SQL表表示无序集(我现在看到了区别)。如果没有指定排序的列,则行没有顺序。因此,我们无法执行任何操作来获得结果?表中还有其他列清楚地描述了您想要看到的内容以及逻辑是什么-不要让我们猜测!