我没有在SQL中使用串联,也不知道如何做到这一点。
假设我有一个包含几个电子邮件地址(varchar)的电子邮件列。 然后我有LastLogin(datetime)的另一列。
john@gmail.com
Frank@yahoo.com
Donny@apple.com
查询如何首先查看lastLogin日期的排序,然后查找电子邮件的域名?
答案 0 :(得分:2)
您可以使用charindex()
和substring()
:
order by lastLogin,
substring(email, charindex('@', email) + 1, len(email))
如果您想要登录的 date 组件:
order by cast(lastLogin as date),
substring(email, charindex('@', email) + 1, len(email))
答案 1 :(得分:1)
假设您正在使用MySQL,以下查询应该适合您:
SELECT * FROM YourTable ORDER BY lastLogin, SUBSTRING_INDEX(email, '@', -1);
您向SUBSTRING_INDEX提供列的名称,分隔符和分隔符的出现次数为-1,以便在分隔符后的左侧获取所有内容。
答案 2 :(得分:0)
试试这可能会有所帮助
select * from table order by `lastLogin date`,reverse(email);