22 Stimmen

Wie kann ich feststellen, ob eine Ziffer eine gerade Zahl ist?

Ein wenig eingerostet im alten SQL.

Kannst du mir helfen?

Angenommen, ich habe eine Zahl z. B. 1 oder 2 oder 4, muss ich herausfinden, ob es sich um eine gerade oder ungerade Zahl handelt und je nachdem bestimmte Berechnungen durchführen.

Wie kann man das in SQL (SQL Server 2000) erkennen? Vielen Dank.

51voto

Mark Byers Punkte 761508

Verwenden Sie den Modulooperator n % 2. Es gibt 0 zurück, wenn die Zahl gerade ist, und 1 zurück, wenn die Zahl ungerade ist.

7voto

Adriaan Stander Punkte 155899

Sie können auch die SQL Server BIT WEISE Operatoren verwenden

DECLARE @Int INT

SELECT @Int = 103

SELECT @Int & 1, @Int % 2

6voto

priyanka.sarkar Punkte 24468

Declare @t table(num int) insert into @t select 1 union all select 2 union all select 3 union all select 4

select 
    num
    ,case when num % 2 = 0 then 'Even' else 'Odd' end as Status
from @t 

Ausgabe:

num Status

1   Odd
2   Even
3   Odd
4   Even

Zum Beispiel: Wenn die Zahl gerade ist (mit 1 multiplizieren) oder ungerade (mit 2 multiplizieren), dann durch 10 teilen und den Rest erhalten

declare @myNumber int ,@result int
set @myNumber = 16 
select  
    Result = 
    (case when @myNumber % 2 = 0 then @myNumber * 1 else @myNumber * 2 end) %10     

Resultat

6

Wenn @myNumber = 11 dann

Resultat

2

Hoffentlich hilft dies

4voto

Milan Punkte 3031

Ich verwende dasselbe in MS SQL SP wie folgt:

IF @current_number % 2 = 0 SET @something = 1 

-- oder --

IF @current_number % 2 = 0 exec sp_whatever

3voto

Artelius Punkte 46771

Verwenden Sie den Modulo-Operator (%).

x % 2

wird Ihnen sagen, ob x gerade oder ungerade ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X