1
我試圖運行以下查詢,從示例數據庫中的客戶記錄生成JSON字符串。SQL FOR JSON轉換問題
SELECT
CustomerID,
CustomerName,
PersonID AS [CustomerContact.PersonID],
SUBSTRING(FullName, 0, CHARINDEX(' ', FullName)) AS [CustomerContact.FirstName],
SUBSTRING(FullName, CHARINDEX(' ', FullName) + 1, LEN(FullName)) AS [CustomerContact.LastName],
EmailAddress AS [CustomerContact.Email],
DeliveryAddressLine1 AS [CustomerContact.Address1],
DeliveryAddressLine2 AS [CustomerContact.Address2],
CityName AS [CustomerContact.City],
StateProvinceName AS [CustomerContact.State],
DeliveryPostalCode AS [CustomerContact.Zip],
CustomerCategoryName AS CustomerType,
WebsiteURL As Website
FROM
Sales.Customers
LEFT JOIN Sales.CustomerCategories
ON Customers.CustomerCategoryID = CustomerCategories.CustomerCategoryID
LEFT JOIN Application.Cities
ON Customers.DeliveryCityID = Cities.CityID
LEFT JOIN Application.StateProvinces
ON Cities.StateProvinceID = StateProvinces.StateProvinceCode
LEFT JOIN Application.People
ON Customers.CustomerID = People.PersonID
WHERE
Customers.CustomerID = 200
FOR JSON PATH
當我嘗試這一點,它只是引發以下錯誤:
Conversion failed when converting the ****** value '******' to data type ******.
有誰知道這是什麼意思?
編輯:***的字面上顯示爲星號,而不是隱藏的值。該生產線的錯誤是Msg 245, Level 16, State 1, Line 1
在這種情況下,這可能意味着您試圖將兩列用不同的類型等同。你能分享一下*****的內容嗎?如果它給你一個行號? – Simon
首先想到的是這一行:ON Cities.StateProvinceID = StateProvinces.StateProvinceCode - 你的意思是加入ID與代碼? – Simon
這實際上解決了它,它生成了JSON字符串,但它是...時髦。不是我所期望的。 – user3066571