我使用datalist作为我的一个场景。 Datalist项目是:姓名和电子邮件。这些东西都是从数据库绑定的。到现在为止还挺好。
概念
用户将在注册表中注册其姓名和电子邮件ID。注册完成后,数据将存入表格(注册)。用户还需要验证他们的电子邮件ID。已验证的电子邮件将存储在我的数据库中的其他表格(已验证)中。
我想要的是:
我首先需要显示已验证的项目。之后,未验证的项目应显示在我的datalist中。
我尝试的是:
我使用了DataList Itemdatabound。我可以在验证和未验证的项目之间做色差。但我最初没有显示已验证的记录。
我的查询如下,
Select Distinct t1.name from Registration as t1
inner join Verification as t2 on t1.Email=t2.Email
and t2.status='Success'
答案 0 :(得分:2)
尝试以下代码。此处的ORDER BY T2.Status DESC
子句将确保首先检索存在于注册和验证表中的那些记录。有关ORDER BY
的更多信息,请参阅此处:https://msdn.microsoft.com/en-us/library/ms188385.aspx
SELECT name, T1.Email
FROM Registration T1
LEFT JOIN Verification T2
ON T1.Email = T2.Email
ORDER BY T2.status DESC, T1.name ASC
答案 1 :(得分:0)
试试这个:(我已经编辑了我的答案,以避免订单错误和明确错误)
SELECT name, status
FROM (
SELECT Distinct t1.name as name, t2.status as status
FROM Registration as t1
LEFT JOIN Verification as t2 ON t1.Email=t2.Email
) InnerSelect
ORDER BY CASE WHEN status='Success' THEN 0 ELSE 1 END, -- This is the 'trick'...
name