stuff(( select distinct ',',Convert(varchar(256),y.RoomPlanID)
from(
select x.RoomPlanID ,x.RoomPlanHierarchy from (select utblConfigDestRoomRates.RoomPlanID,utblMstRoomPlans.RoomPlanHierarchy
FROM utblConfigDestRoomRates inner
JOIN utblMstRoomPlans on utblConfigDestRoomRates.RoomPlanID=utblMstRoomPlans.RoomPlanId
WHERE PropertyTypeID=1
AND BusinessID='AAAA'
AND('25-Aug-2015' BETWEEN DateEffective AND DateEnd)
AND StarRank=3 group by RoomPlanHierarchy order by RoomPlanHierarchy asc
) x
--order by
-- x.RoomPlanHierarchy
)y
FOR XML PATH('')), 1, 1, '')
答案 0 :(得分:0)
您可以使用ROW_NUMBER(Transact-SQL)函数。我假设x.4RoomPlanHierarchy的顺序就像这样
stuff(( select distinct ',',Convert(varchar(256),y.RoomPlanID)
from(
select x.RoomPlanID ,x.RoomPlanHierarchy,ROW_NUMBER() OVER(ORDER BY x.RoomPlanHierarchy asc) AS Row from (select utblConfigDestRoomRates.RoomPlanID,utblMstRoomPlans.RoomPlanHierarchy
FROM utblConfigDestRoomRates inner
JOIN utblMstRoomPlans on utblConfigDestRoomRates.RoomPlanID=utblMstRoomPlans.RoomPlanId
WHERE PropertyTypeID=1
AND BusinessID='AAAA'
AND('25-Aug-2015' BETWEEN DateEffective AND DateEnd)
AND StarRank=3 group by RoomPlanHierarchy
) x
--order by
-- x.RoomPlanHierarchy
)y
FOR XML PATH('')), 1, 1, '')
答案 1 :(得分:-2)
--用SQL格式化
(
SELECT
stuff(
(
SELECT
'' + a.col_name ,
'' + Replace(CAST(a.pos as VARCHAR), a.pos, '') + '"'
FROM
(
SELECT
CAST (',' + db_column_name + ' AS "' + REPLACE(label_tag, '.', '_') AS nvarchar (4000) ) AS col_name,
row_number() over (partition BY RIGHT(entity, CHARINDEX('.', (REVERSE(entity)) ) - 1) ORDER BY db_column_name) AS pos
FROM
table1 AS ex
JOIN
table2 AS ef
ON
ef.col1 = ex.col1
WHERE
entity LIKE '%string%')a FOR xml path('')) , 1, 1, '' ) )