【发布时间】:2013-08-12 23:19:13
【问题描述】:
在本例中,我能否使用 T-SQL 语法和单个 select 语句仅检索行 BB、DD 和 FF?
C1 | C2 | C3 | C4
-----------------
AA | KK | 11 | 99
BB | KK | 11 | 99
CC | KK | 22 | 99
DD | KK | 22 | 99
EE | KK | 33 | 99
FF | KK | 33 | 99
好的,这就是我最终解决问题的方法:SELECT distinct [C4], [C1], [C2], [C3] FROM [Table] where [C4] = 'MyValue' order by [ C3] 描述。
【问题讨论】:
-
是的,你可以这样做 (
select * from myTable where C1 in ('B','D','F')),但你为什么要这样做? -
@MikeW 谢谢你。澄清一下,我正在创建一个使用 MSSQL 作为后端的小型消息传递应用程序。当 1 人回复消息时,该组的所有其他订阅者都可以看到该消息。因此(在上面的简化示例中)我只需要为每个先前的回复(C3)检索一个回复。所以上面,C1 是消息的序列号,C2 是文本,C3 是回复的索引,C4 是对话的 ID。 (呼!)C1 始终是唯一的,其他三列包含每个给定回复的相同数据。我想使用分组依据。
-
为了澄清更多,我需要一个 select 语句,它只返回 C3 中每个唯一条目中的一个。不是倍数
标签: sql sql-server-2008