0

多分私はこれを過度に複雑にしています...

1 つの列を選択するための「単純な」クエリが必要ですが、個別の行のみを返します。
ここに鍵があります。完全に一致するだけでなく、類似している場合は除外する必要があります。

たとえば、これが私の現在のクエリです

select distinct channel from audio_srcs order by channel

トリックは、これが次のようなものを返すことです

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

1003行のうちの1つだけを表示し、1004行のうちの1つを表示したい(たとえば)。どちらが返ってくるかは気にしません。

私の望む最終結果は次のようになります。

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 に答える