1
Ich versuche, die folgende Abfrage auszuführen, um eine JSON-Zeichenfolge aus einem Kundendatensatz in einer Beispieldatenbank zu erstellen.SQL FÜR JSON Conversion Problem
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
Wenn ich dies versuchen, wirft es einfach den folgenden Fehler:
Conversion failed when converting the ****** value '******' to data type ******.
Wer weiß, was das bedeutet?
EDIT: Die *** sind buchstäblich als Sternchen, kein versteckter Wert. Die Leitungsfehler sind Msg 245, Level 16, State 1, Line 1
In diesem Fall bedeutet es wahrscheinlich, dass Sie versuchen, zwei Spalten mit unterschiedlichen Typen gleichzusetzen. Könnten Sie teilen, was die ***** sind und ob es Ihnen eine Zeilennummer gibt? – Simon
Das erste, was mir in den Sinn kommt, ist diese Zeile: ON Cities.StateProvinceID = StateProvinces.StateProvinceCode - wollten Sie ID mit Code verbinden? – Simon
Das hat es tatsächlich repariert, es erzeugte den JSON String, aber es ist ... funky. Nicht das was ich erwartet habe. – user3066571