作者suomax (SUOMAX)
看板Database
标题[SQL ] 请教 SQL 语法关於 group by
时间Tue Nov 15 17:45:08 2016
(针对
SQL 语言的问题,用这个标题。请用 Ctrl+Y 砍掉这行)
资料库名称: Sqlite
资料库版本: 3.x (Android)
内容/问题描述:
请教各位 SQL 前辈,
我有一个资料表的结构是这样
_ID FIRST_NAME LAST_NAME TYPE TIME
1 Mark Zuckerberg 1 10000
2 Larry Page 1 10001
3 Jeff Weiner 1 10002
4 Elon Musk 2 10003
5 Lary Page 2 10004
6 Mark Zuckerberg 100 10005
7 Elon Musk 1 10006
8 Mark Zuckerberg 2 10007
9 Larry Page 100 10008
希望的查询结果:
1. 让记录中有出现 TYPE=100 的排在最前面, 再按照 TIME 排序
2. 排除 TYPE=100, 每个 FIRST_NAME,LAST_NAME 只出现一次
例:
_ID FIRST_NAME LAST_NAME TYPE TIME
5 Larry Page 2 10003 // #9 type=100, time=10008
8 Mark Zuckerberg 2 10007 // #6 type=100, time=10004
7 Elon Musk 1 10006 // #6 time=10006
3 Jeff Weiner 1 10002 // #3 time=10002
希望达到的目的是 type=100 当做某种特殊记录, 让某个人置顶
同时也因为他只当做特殊符号, 所以不显示在最後列出的结果中
像这样的用法,有可能做到吗?
有可能用一行 query 做到吗?
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.222.160.128
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1479203111.A.177.html
1F:→ bohei: 好难想像这在干嘛的, 可以说说看实际应用的案例吗,或许会 11/15 17:51
2F:→ bohei: 更容易想出什麽建议之类的东西 11/15 17:51
感谢回应
这个表格可以想像成 user (first_name, last_name) 的贴文,
type 1, 2... (<100) 可以想像成是特定的板块
现在是希望列出最近发言过的 user 的最新一则贴文
却又希望可以直接把某些 user 在这个列表里置顶
有某些限制, 希望可以不开新 table 实现出来... SQL 苦手啊... orz
※ 编辑: suomax (61.222.160.128), 11/15/2016 18:04:17
3F:→ bohei: OK,延续你的说法,TYPE=100应该是手动新增的吧? 11/15 18:09
4F:→ bohei: 这table是贴文记录,这样不会影响到整个table资料的意义吗 11/15 18:10
5F:→ suomax: 您说的有道理,每次查表格还要刻意避开特殊记录是蛮恶心的 11/15 18:20
6F:→ suomax: 我想想有没有其他方式 11/15 18:20
7F:推 bohei: 目前只想到用另一个table记录需要优先排序的人..orz 11/15 18:24
8F:→ jackiechin: type =100 union type <> 100 03/21 22:13