2011-11-11 12 views
18

すべての奇数のID値を見つけるために次のコマンドを使用する必要があったクエリを今日作業していました。偶数または奇数ID値の検索

(ID % 2) <> 0 

誰でもこのことを教えていただけますか?それはうまくいったが、なぜか知りたい。

+0

(ID%2)= 0偶数を選択すると – anandharshan

答えて

31

ID % 2 IDを2で割った場合の残量を確認しています。偶数を2で割った場合、常に0の剰余があります。他の数字(奇数)はゼロ以外の値になります。それは何をチェックしているのですか?

+0

となります。これはまさに私が必要としていたものです。ありがとう! – Phoenix

2

IDを2で割って余りがゼロでないことを確認しています。つまり、それは奇妙なIDです。

7

我々はオラクルでは

select num from table where (num % 2) = 0 
-1

を使用する必要があります偶数を見つけるための、

select num from table where MOD (num, 2) = 0; 
0

配当%除数

配当は分割する数値式です。 DividendはSQL Serverの整数データ型の式でなければなりません。

Divisorは被除数を分ける数値式です。除数は、SQL Server以外の整数データ型の式でなければなりません。 = 15

除数= 2

SELECT 15 % 2 

Output 
1 

配当は、あなたが

クエリだけでもID番号のSTATIONからCITY名のリストを照会したいとしましょう。 STATIONため

スキーマ構造:

ID Number 

CITY varchar 

STATE varchar 


select CITY from STATION as st where st.id % 2 = 0 

Will fetch the even set of records 


In order to fetch the odd records with Id as odd number. 

select CITY from STATION as st where st.id % 2 <> 0 

%関数は、値が0または1

+0

この質問は、単に追加のコード例ではなく、*説明*を探しています。あなたの答えは質問者のための洞察を提供せず、削除されるかもしれません。比較して奇数を選択する方法を説明してください。 –

-1

<>が等しくないことを意味するか減少させます。しかし、SQLの一部のバージョンでは、あなたはドク以下のように!=

0
for even: 
select * from tablename where columname/2 not like '%.%'; 
for eg: 
select sal from emp where sal/2 not like '%.%'; 
for odd; 
select * from tablename where columname/2 like '%.%'; 
select sal from emp where sal/2 like '%.%'; 
+1

これは質問に答えるものではなく、たとえそれがあったとしても、コードの文脈や説明はありません。コードのみの回答は一般的に役に立たない。 – WillardSolutions

0

を書くことができます別の数値で割り算したときの余りを返します

配当%除数

を指定します。例

について

https://docs.microsoft.com/en-us/sql/t-sql/language-elements/modulo-transact-sql#syntax

13%1

次の部分に等しいていない示し<>ある2リターン。これは、Oracleデータベースに仕事に行くされていないため、

そのためどのようなあなたの文の意味、それは2で割ったときにIDの 余りである0

に等しいではないが注意してください。同じ表現は以下のようになります。

MOD(ID, 2) <> 0 
関連する問題