SQL Server “группа” связанным запросом

Это всегда означает одно и то же: логическое ИЛИ

Это распространенный прием, использующий приведение типов. Многие не логические выражения оцениваются как ложные. Это так же, как это:

hrs = (hrs-12)
if(!hrs){
    hrs = 12;
}

И if () работает, потому что 0 приводит к ложному. Он также используется для работы с неопределенными переменными:

function foo(optionalValue){
    var data = optionalValue || "Default value";
}
foo();
foo("My value");
1
задан KM. 24 July 2013 в 11:48
поделиться

3 ответа

Используя трюк с XML, это должно сработать:

SELECT      i.ItemDescription,
            (SELECT x.ItemTypeDescription + ': ' + x.vals + 
                CASE WHEN (ROW_NUMBER() OVER (ORDER BY x.ItemType DESC) = 1) THEN '' ELSE '; ' END
                FROM  ( SELECT  DISTINCT
                                ii.ItemPK,
                                t.ItemTypeDescription,
                                ii.ItemType,
                        (SELECT         x.ItemValue + 
                                        CASE WHEN (ROW_NUMBER() OVER (ORDER BY x.ItemValue DESC) = 1) THEN '' ELSE ', ' END
                            FROM        #ItemInfo x
                            WHERE       x.ItemPK = ii.ItemPK
                                    AND x.ItemType = ii.ItemType
                            ORDER BY    x.ItemValue
                            FOR XML PATH('')
                        ) AS VALS
                FROM    #ItemInfo ii
                JOIN    #ItemTypes t
                    ON  ii.ItemType = t.ItemType
                ) x
                WHERE       x.ItemPK = i.ItemPK
                ORDER BY    x.ItemType
                FOR XML PATH('')
            ) AS CombinedDescription

FROM        #Items i
1
ответ дан 3 September 2019 в 01:21
поделиться

you could write a scalar value function that would contain a subquery in which it would perform the concatenation, or you could try coalesce, example here

0
ответ дан 3 September 2019 в 01:21
поделиться

Различные варианты агрегированной конкатенации строк в SQL Server были обобщены Анит Сен в этой публикации: http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values- in-transact-sql /

Обычно лучшим вариантом является трюк с XML PATH.

1
ответ дан 3 September 2019 в 01:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: