Hallo,
ich möchte folgendes SELECT-Statement im SQL-Server ausführen:
SELECT username, (userid>20) AS irgendwas FROM usertable;
Aber der SQL-Server weigert sich und stört sich an dem Vergleich (wo ich gerne ein Wahrheitswert, in welcher Form auch immer, zurückhaben möchte). Denn wenn man
SELECT 1=1 FROM usertable;
ausführen möchte, kommt diesselbe Fehlermeldung (Syntaxfehler in der Nähe von '=').
Wie kann man solche Vergleiche in Statements realisieren (in MS Access funktionieren sie übrigens einwandfrei).
Ich sag nur MICROSOFT *kopfschüttel*. Sorry, nichts persönliches. Mir war nur so. Geht schon wieder. Tja, bei mysql gehts.
1. Lösungsansatz: Ich kenn mich jetzt mit VIEWs nicht aus, aber da kann man wohl alles in alles umwandeln, zumindest theoretisch. Also in Deinem VIEW stünde dann true oder false schon drin. da der VIEW aber virtuell ist, also nur eine Sicht auf ein oder mehrere Tabellen, ist er auch immer aktuell. Dei eine Ex-Kollege, der das kann, sagte mal, daß er von mir nur eine Regel brauchte, wie man aus der einen Gruppe von Zahlen(z.B. ungerade) den ACSII-Code für ein 'X' und aus der anderen Zahlengruppe (meinetwegen die geraden) ein Leerzeichen ' ' basteln könne. Das war zwar dann eine recht wüste Formel, aber es funktionierte.
Da kam glaube sowas raus:
'X' entspricht ascii 88, das Leerzeichen der 32
wahrheitswert = (-1^zahl)*(-23)+55
Um Zahlen in die Gruppen größer und kleiner einer grenze zu zerlegen, ginge folgender Ansatz:
wahrheitswert = (zahl-grenze-0.5)/abs(zahl-grenze-0.5) ...
Damit hast Du wieder -1 und +1, die Du dann wie oben strecken könntest. die 0.5 ist hier wichtig, sonst kommt bei einer zahl=grenze dann 0/0. Das Beispiel setzt natürlich Integer-Zahlen vorraus. Dezimalzahlen kann man aber sicher zu Integers parsen und durch vorheriges aufaddieren einer 0.5 oder einer 0.x richtig oder speziell runden.
2. Lösungsansatz: Im Frontend, wenn's jetzt um ein Programm geht, kann man natürlich auch dort das Ergebnis auswerten und die Ausgabe am Frontend entsprechend gestalten. Ist sicher der einfachere Weg
3. SQL-Server deinstallieren und Oracle oder MySQL installieren ;-)
Vielen Dank schon im Voraus
Bitte, bitte; hoff ich konnte helfen.
Gruss
Michael