2

テーブル Vehicle のデータの例

ID     BODY TYPE        Litre
1      AAA              1.5
2      BBB; CCC         1.9
3      DDD              1.9
4      EEE; FFF; GGG    1.8
5      GGG              1.8

次の結果をクエリに取り込む Select Distinct ステートメントが必要なので、すべての一意の値を選択するだけでなく、 で分割します。同じように。

BODY TYPE
AAA
BBB
CCC
DDD
EEE
FFF
GGG

さまざまな機能を含む同様の質問を見てきましたが、結果をクエリとして表示できるようにしたいと考えています。以下の提案を自分のシナリオに適応させようとしました

4

2 に答える 2

5

実際には、データを正規化された形式で保存する必要があります。とは言っても、これを試してみてください

;with c as (
    select bodytype, 0 as start, CHARINDEX(';', bodytype) as sep 
    from Vehicle
    where litre=1.9 
    union all
    select bodytype, sep, CHARINDEX(';', bodytype, sep+1) from c
    where sep>0

)
    select distinct LTRIM(RTRIM(SUBSTRING(bodytype,start+1,chars))) as [BodyType]
    from
    (
        select *, Case sep when 0 then LEN(bodytype) else sep-start-1 end as chars
        from c
    ) v
于 2013-08-15T09:16:57.730 に答える