2016-11-29 6 views
0

Ich habe zwei unterschiedliche Ergebnisse, wenn die gleichen SQL-Anweisungen zwischen Azure Mobile Service (der alte Service) und Azure App Service (der neue Dienst)unterschiedliche SQL-Ergebnisse zwischen "Azure Mobile Services" und "Azure App Service"

läuft

die SQL-Anweisung ist:

SELECT ROW_NUMBER() OVER(ORDER BY score_tot DESC) AS row, score_tot FROM Player 

Wenn ich es als alter Azure mobile Service mit dem request.service.mssql.query run() Funktion i ein json Ergebnis bekam wie folgt aussehen:

[{Reihe: , score_tot: 45674},

{Reihe: , score_tot: 21234}]

aber wenn ich laufe die gleiche SQL-Anweisung mit dem neuen Azure App-Service mit die request.azureMobile.data.execute (SQL) Funktion ich habe diese:

[{Reihe: '1', score_tot: 45674},

{Reihe: '2', score_tot: 21234}]

die App-Service die Zeile Spalten als String/Text zurückgibt und nicht als Zahl, wie sie in mobilen Dienst tut.

Warum gibt es einen Unterschied zwischen diesen beiden Ergebnissen und was kann ich tun, um die Zeilenspalten als Zahlen im App-Service zu erhalten? Sollte der App-Service nicht die gleichen Ergebnisse für dieselbe SQL-Anweisung wie der alte Service zurückgeben?

/T

Antwort

1

Per meiner Erfahrung Azure Mobile-Apps SDK für node.js verwendet node-mssql npm Paket als SQL Server-Treiber. Im Folgenden sind meine Screenshot des Tests, es scheint, dass node-mssql lässt ROW_NUMBER() Funktion gibt varchar Wert anstelle von Int. code snippetreturn result

Als Abhilfe können, könnten Sie versuchen, das SQL unten zu verwenden:

SELECT CONVERT(INT, ROW_NUMBER() OVER(ORDER BY score_tot DESC)) AS row, score_tot FROM Player 
+0

Ok, danke für die schnelle Antwort. Ich denke, ist ein bisschen seltsam, dass es zwischen diesen beiden Diensten nicht konsistent ist. Es kann seltsame Verhaltensweisen geben, wenn Sie ein Upgrade für diesen neuen Dienst durchführen und erwarten, dass Sie sich auf die gleiche Weise verhalten. In meinem Fall habe ich einige Berechnungen zu den zurückgegebenen Integer-Zeilenwerten durchgeführt und als ich zu diesem neuen Dienst gewechselt habe, habe ich stattdessen String-Verkettungen gemacht. – Terminatori777

Verwandte Themen