18

How can I change the column name "JSON_F52......" to Any(e.g. SalesOrder)

enter image description here

Furqan Misarwala
  • 1,413
  • 4
  • 21
  • 46

2 Answers2

46

Wrap your json building SELECT in another SELECT:

SELECT (
      SELECT SalesOrderNumber AS 'Order.Number',
             OrderDate AS 'Order.Date'
        FROM Sales.SalesOrderHeader
         FOR JSON PATH
) AS SalesOrder
Michal D.
  • 653
  • 6
  • 6
9

i think the final result will not have anything with that name, it is a temporary name to store the result..

If you want the result in a variable The output of the FOR JSON clause is of type NVARCHAR(MAX), so you can assign it to any variable, as shown in the following example.

DECLARE @SalesOrder NVARCHAR(MAX) = (SELECT TOP 10 * FROM Sales.SalesOrderHeader FOR JSON AUTO)

Then select from @SalesOrder

If you want to store it in a file then check this link

Julian
  • 30,223
  • 19
  • 105
  • 147
AnouarZ
  • 1,027
  • 8
  • 22
  • While this works to remove the column name (`JSON_F52......`), your JSON results are left with an empty string as an index key `"": []` which is bad practice. Notably, this will break the dot-notation property accessor in JavaScript. The better solution, in my opinion, is to wrap the `SELECT` inside of another `SELECT` as described by `Michal D` below. – Crayons Jul 31 '19 at 15:43