2010-02-05 9 views
5

Ich suche irgend SQL-Code, der eine WHERE-Klausel wie folgt hat:Wert vor Variable

WHERE 'USD' = CCY 

ich den Schriftsteller gefragt, warum er auf der linken Seite den Wert der Putten, und er sagte, ist es am besten Praxis zu tun, stammend von C++, wo Leute irrtümlicherweise den Wert zuweisen konnten, anstatt Gleichheit zu vergleichen, indem Sie das zweite Gleichheitszeichen vergessen.

Ich habe das noch nie zuvor gesehen.

Was sind Ihre Gedanken?

+3

sollte Gemeinschaft Wiki sein – SilentGhost

+0

Ich kann verstehen, wenn Variablen in C++, C#, Java, Javascript usw. vergleichen ... aber ich glaube nicht, dass es wirklich wichtig ist, da Sie Variablen in einer Where-Klausel nie Werte zuweisen können ... – Zoidberg

+2

@Zoidberg: Es ist fast nie ein Problem in C# oder Java, wo "if" -Anweisungen usw. einen booleschen Zustandstyp haben müssen - so ist es sehr selten, dass ein Tippfehler trotzdem legal wäre. –

Antwort

8

Äh, C++ ist nicht SQL. Es gibt keine == in SQL und keine Zuweisungen in einer WHERE Klausel.

Ich bin nicht sicher, ob es als "Best Practice" gilt, aber es gibt eine Konvention, die den bekannten Wert auf der rechten Seite platziert. Also, mit einem wörtlichen wie in Ihrem Beispiel das wäre

WHERE CCY = 'USD' 
2

Nie in SQL gesehen, wo natürlich die C++ - Schlussfolgerung nicht gilt, da '=' in diesem Kontext kein Zuweisungsoperator ist. Außerdem mögen viele C++ Programmierer (einschließlich mir) diesen Stil nicht.

4

Best Practice in C++ macht es nicht die beste Praxis in SQL. Dem Abfrageoptimierer ist das egal, also ist es nur eine Frage der Präferenz, aber ich muss sagen, dass es nicht meine Präferenz wäre oder wie ich es natürlich schreiben würde.

0

Wenn man es betrachtet:

'USD' = CCY 

im Wesentlichen das gleiche ist:

CCY = 'USD' 

Was:

ist es am beste Praxis, dies zu tun, von C stamm ++ wo Menschen könnten versehentlich den Wert zuweisen anstelle Gleichheit von für vergleichen bekommen die zweite Gleichheitszeichen.

Nun, ich habe noch nie geschehen gesehen, und wenn dies so wichtig ist, haben wir auf jeden Fall diese irgendwo und dies hätte mich von den meisten, wenn nicht von allen praktiziert gesehen.

+0

?????????????????? – Sarfraz

+0

+1 Keine Ahnung, warum das runter ging, sagte dasselbe wie der Rest von uns – Andrew

+0

@Andrew: Vielen Dank, aber ich weiß nicht, wie die Leute versuchen, einen zu bekommen, um Stimmen für sich selbst zu bekommen, das ist wirklich schlecht trainieren. – Sarfraz

0

Ich persönlich würde es nicht so tun, aber die Spaltennamen als ich dies auf der linken Seite gelegt werde besser lesbar/leichter innerhalb folgen eine SQL-Abfrage

Ich habe sehr selten gesehen, dass es den umgekehrten Weg gemacht, und glaube nicht, dass der angegebene Grund wirklich auf SQL anwendbar ist (wie bereits erwähnt, es ist "=" in SQL, nicht "==")

0

Wenn er sagt, es ist eine Best Practice, würde ich ihn bitten, das mit SQL nicht C++ - Quellen zu beweisen. Da 99,9% des SQL-Codes, den ich je gelesen habe (einschließlich unseres Codes, anderer Organisationscodes, Microsoft-Hilfedateien, SQL-Blogs usw.), das Gegenteil dessen tun, was Ihr Entwickler tut, würde ich sagen, dass er die normale Erwartung der Entwickler, die den Code pflegen, sind eine schlechte Idee.In SQL erwarten wir die Form

WHERE CCY = 'USD' 

nicht

WHERE 'USD' = CCY 

Deshalb professsional auch Code auf diese Weise schreiben würde, um zu sehen, um sicherzustellen, an den Betreuer klar.

Verwandte Themen