0

也许我过于复杂了......

我只需要一个“简单”查询来选择一列,但只返回不同的行。
这是关键,如果它们相似,则需要排除它们,而不仅仅是完全匹配。

例如,这是我当前的查询

select distinct channel from audio_srcs order by channel

诀窍是这会返回如下内容

Channel
--------
1001
1003
1003 <Description@unitid>
1004
1004 <Description@unitid>

我希望显示 1003 行中的唯一一个和 1004 行之一(例如)。我不在乎它返回哪一个。

我想要的最终结果如下所示:

Channel
---------
1001
1003
1004
etc.
4

2 回答 2

7
SELECT distinct left(Channel, 4) as Channel  --  or maybe first 5 characters
 from audio_srcs
 order by channel 
于 2012-06-15T15:28:58.370 回答
3

我会将分隔符作为区别。您只需要列中的第一个标记:

SELECT distinct left(Channel,
                     (case when charindex(' ', channel) <= 0 then len(channel)
                           else charindex(' ', channel)
                      end
                     )
                    ) as Channel  --  or maybe first 5 characters
from audio_srcs
order by channel 

我使用了 SQL Server 版本的字符串函数。

于 2012-06-15T15:40:19.670 回答