I dont think its possible with the given input table. You need a identifier for the rows, for example year:
DROP TABLE IF EXISTS #TableA
CREATE TABLE #TableA
(
[YEAR] INT,
[Identifier_Column] NVARCHAR(10),
[data] INT
)
INSERT INTO #TableA ([YEAR],[Identifier_Column],[data]) VALUES (2022,'India',323)
INSERT INTO #TableA ([YEAR],[Identifier_Column],[data]) VALUES (2021,'India',324)
INSERT INTO #TableA ([YEAR],[Identifier_Column],[data]) VALUES (2020,'India',325)
INSERT INTO #TableA ([YEAR],[Identifier_Column],[data]) VALUES (2022,'US',326)
INSERT INTO #TableA ([YEAR],[Identifier_Column],[data]) VALUES (2021,'US',327)
DECLARE @COLUMNS AS NVARCHAR(MAX)
DECLARE @QUERY AS NVARCHAR(MAX)
SET @COLUMNS = STUFF((SELECT distinct ',' + QUOTENAME([Identifier_Column])
FROM #TableA
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT [YEAR],' + @COLUMNS + '
FROM #TableA
pivot
(
min([data])
for [Identifier_Column] in (' + @COLUMNS + ')
) p
ORDER BY [YEAR] DESC'
execute(@query)