У меня есть два вида.
Определение моего первого вида
CREATE VIEW FIRST_VIEW AS
SELECT PT.F_PRODUCT AS F_PRODUCT, PT.F_TEXT_CODE AS F_TEXT_CODE, PHT.F_PHRASE AS F_PHRASE,F_COUNTER COUNTER1 FROM T_PROD_TEXT PT
LEFT JOIN T_PHRASE_LINKAGE PHL
ON PT.F_TEXT_CODE = PHL.F_TEXT_CODE
INNER JOIN T_PHRASE_TRANSLATIONS PHT
ON PHL.F_PHRASE_ID = PHT.F_PHRASE_ID
WHERE PT.F_DATA_CODE = 'MANU' AND PHT.F_LANGUAGE = 'EN'
UNION ALL
SELECT PT.F_ALIAS AS F_PRODUCT, PT.F_TEXT_CODE AS F_TEXT_CODE, PHT.F_PHRASE AS F_PHRASE,F_COUNTER COUNTER2 FROM T_PROD_ALIAS_TEXT PT
LEFT JOIN T_PHRASE_LINKAGE PHL
ON PT.F_TEXT_CODE = PHL.F_TEXT_CODE
INNER JOIN T_PHRASE_TRANSLATIONS PHT
ON PHL.F_PHRASE_ID = PHT.F_PHRASE_ID
WHERE PT.F_DATA_CODE = 'MANU' AND PHT.F_LANGUAGE = 'EN'
Вид сверху Дает ниже вывода.
F_PRODUCT F_TEXT_CODE F_PHRASE COUNTER1
WVTST]PROD00|5 MANU0001 A 7734163
WVTST]PROD00|5 MANU0002 B 7734162
ABPROD-BLACK MANU0001 C 7714721
создал еще один вид Вид сверху (FIRST_VIEW) с использованием функции stuff.
CREATE VIEW [dbo].[V1_STUFFED] AS
SELECT V1.F_PRODUCT,
F_TEXT_CODES = STUFF((SELECT DISTINCT ',' + V2.F_TEXT_CODE FROM FIRST_VIEW V2 WHERE V1.F_PRODUCT = V2.F_PRODUCT FOR XML PATH('')),1,1,''),
F_PHRASES = STUFF((SELECT DISTINCT ' |par ' + V3.F_PHRASE FROM FIRST_VIEW V3 WHERE V1.F_PRODUCT = V3.F_PRODUCT FOR XML PATH('')),1,5,'')
FROM FIRST_VIEW V1 GROUP BY V1.F_PRODUCT
Приведенный выше вид дает ниже Output.It объединяет F_TEXT_CODES AND F_PHRASES в одну строку для продуктов, которые содержат более одного кода_f_text_codes.
F_PRODUCT F_TEXT_CODES F_PHRASES
WVTST]PROD00|5 MANU0001,MANU0002 A,B
ABPROD-BLACK MANU0001 C
Ноi Требуемый ниже вывод.
F_PRODUCT F_TEXT_CODES F_PHRASES
WVTST]PROD00|5 MANU0002,MANU0001 B,A
ABPROD-BLACK MANU0001 C
В вышеприведенном Требуемом выводе F_TEXT_CODES (MANU0002) отображается перед (MANU0001) Text_Code, потому что MANU002 содержит значение Counter1 (7734162) и MANU0001 СЧЕТЧИК СОДЕРЖАНИЯ (7734163), поэтому F_TEXTCCF_PHRASE отображает для основанного на F_PRODUCT порядка Counter1.
как я могу использовать порядок по выражению, используя функцию stuff для вышеуказанного требования?.