Something like this?
CREATE TABLE CHG_ITEM(
CHARGE_BATCH_ID int,
CHARGE_ITEM_IDint,
REVENUE_SITE_IDint)
INSERT INTO CHG_ITEM(CHARGE_BATCH_ID, CHARGE_ITEM_ID, REVENUE_SITE_ID)
VALUES
(1, 15929, 1000),
(1, 16930, 1000),
(10, 17186, 2000),
(10, 18187, 5000),
(10, 22188,2000),
(22, 14189, 3000),
(22, 21190,3000),
(22, 20191,3000),
(100, 30282, 4000),
(100, 30283, 4000),
(100, 11284, 4000);
WITH CTE AS(
SELECT
Cgi.CHARGE_BATCH_ID
, Cgi.CHARGE_ITEM_ID
, CASE WHEN COUNT( REVENUE_SITE_ID) OVER( PARTITION BY Cgi.CHARGE_BATCH_ID) <> COUNT( REVENUE_SITE_ID) OVER( PARTITION BY Cgi.CHARGE_BATCH_ID, Cgi.REVENUE_SITE_ID)
AND COUNT( REVENUE_SITE_ID) OVER( PARTITION BY Cgi.CHARGE_BATCH_ID, Cgi.REVENUE_SITE_ID) = 1
THEN Cgi.REVENUE_SITE_ID END AS REVENUE_SITE_ID
FROM
dbo.CHG_ITEM AS Cgi
--WHERE
-- Cgi.CHARGE_BATCH_ID IS NOT NULL AND
-- Cgi.STATUS = 'POSTED'
)
SELECT CHARGE_BATCH_ID
, CHARGE_ITEM_ID
, REVENUE_SITE_ID
FROM CTE
WHERE REVENUE_SITE_ID IS NOT NULL
ORDER BY
CHARGE_BATCH_ID
, CHARGE_ITEM_ID
, REVENUE_SITE_ID