2016-04-29 7 views
1

ich eine SQL-Unterabfrage haben,Negieren eine ganze Zahl, die SQL-Abfrage zurückgegeben

SELECT `generateoffset` FROM `opa`.`sddrecurrencetype` WHERE `sddrecurrencetypeid`=1; 

es als Ergebnis zurückgibt 6

Was ich frage mich, ist, dass, wenn seine möglichen negativen, was die bekommen Wert wird von der Abfrage zurückgegeben.

Ich habe versucht, es so zu tun,

-(SELECT `generateoffset` FROM `opa`.`sddrecurrencetype` WHERE `sddrecurrencetypeid`=1) 

Ich dachte, es mir von dem, was das Ergebnis der Abfrage wie -6 sein würde, negativ geben wird sein, aber leider ist es nicht wie diese arbeiten.

Kann mir jemand bitte sagen, wenn es möglich ist, was ich versuche zu tun.

Vielen Dank im voraus !!!

+3

SELECT - 'generateoffset' FROM' opa'.'sddrecurrencetype' WHERE 'sddrecurrencetypeid' = 1; '-' vor der Spalte, nicht vor dem' select'. –

+0

Danke @vkp, tatsächlich hat es funktioniert !!!! :) – Nia

Antwort

4

multiplizieren Sie einfach die Spalte Ergebnis, anstatt die gesamte Abfrage:

SELECT `generateoffset` * -1 as 'generateoffset' 
FROM `opa`.`sddrecurrencetype` 
WHERE `sddrecurrencetypeid`=1; 
+0

Danke Paddy, es funktionierte tatsächlich wie Magie !!!! :) – Nia

+0

Warum nicht einfach ein unäres '-', d. H.' SELECT -generateoffset ... '? – jarlh

+0

@jarlh, das funktioniert auch, ich bin mir nicht sicher, welches ist besser aus Performance-Perspektive ..... – Nia

Verwandte Themen