古いSQLではビットが錆びます。どのようにして桁の偶数を決定できますか?
お手伝いできますか?
数字が1または2または4の場合、偶数または奇数であるかどうかを判断し、偶数または奇数に応じて計算を行う必要があります。
はどのようにSQL(SQL Server 2000の)に おかげでたくさん
古いSQLではビットが錆びます。どのようにして桁の偶数を決定できますか?
お手伝いできますか?
数字が1または2または4の場合、偶数または奇数であるかどうかを判断し、偶数または奇数に応じて計算を行う必要があります。
はどのようにSQL(SQL Server 2000の)に おかげでたくさん
は剰余演算子n % 2
を使用したことを検出します。数字が偶数の場合は0を返し、奇数の場合は1を返します。
をサポート セット@ myNumber = 1 他の選択(@ myNumber%2)= 'でも' 1 \t \t印刷 \t \t 場合\t \t print 'odd' –
はい、またはselect内で実行したい場合は、「case ... when ... then」構文を使用します。 –
ます。また、SQL Serverのビット単位の演算子
DECLARE @Int INT
SELECT @Int = 103
SELECT @Int & 1, @Int % 2
何らかの理由で私は何をする必要があるかを計算する必要はありません。数字が偶数または奇数の場合、10で除算してリマインダのみを受け取ります DECLARE @myNumber INT、@ result int SELECT @myNumber = 16 SELECT @myNumber &1、@myNumber%2 @ myNumber = 0--場合も セット@結果= @ myNumber X 1--乗算1つの 他のセット@結果による= @ myNumber X 2--乗算2 によって - - その結果場合は10と --example割る= 5.2だけリマインダーをとる(この場合は2) 選択結果 –
この を試します宣言@myNumber INT、@ \t \t検索結果を選択し= 16 セット@myNumber intをもたらす= \t(@myNumber%= 0 2次に@myNumber * 1他@myNumber * 2端ケース)10% –
DECLAREの@myNumber INT、@ result int SELECT @myNumber = 16 SELECT @myNumber&1、@myNumber%2 @ myNumber = 0の場合でも の場合@@ result = @ myNumber * 1を掛ける - 1を掛ける else set @result = @ myNumber * 2 - 2を掛ける select @result%10 –
宣言@tテーブルを使用することができます(NUM int型) @tに挿入するすべての1つの組合を選択し、すべての2組合を選択し、すべての3組合を選ぶ4
を選択select
num
,case when num % 2 = 0 then 'Even' else 'Odd' end as Status
from @t
出力:
NUMステータス
1 Odd
2 Even
3 Odd
4 Even
数が偶数(乗算1による)または奇数(乗算2による)である場合、10で除算し、余りを
declare @myNumber int ,@result int
set @myNumber = 16
select
Result =
(case when @myNumber % 2 = 0 then @myNumber * 1 else @myNumber * 2 end) %10
結果
6
@myNumber = 11
次いで
を得ます結果
2
希望すると便利です
数字の16進値の1ビットを確認できます。そのビットがオンの場合、それは奇数です。
IF @current_number % 2 = 0 SET @something = 1
- または -
IF @current_number % 2 = 0 exec sp_whatever
私は次のようにMS SQL SPで同じものを使用しています。
スキーマ:
ID番号
CITY VARCHAR
STATE VARCHAR
You can use any of the mentioned criteria to fetch the even ID.
1. MOD() Fucntion
select distinct CITY from STATION as st where MOD(st.id, 2) = 0
2. % function
select distinct CITY from STATION as st where st.id % 2 = 0
USE AdventureWorks;
GO
SELECT BusinessEntityID,
CASE BusinessEntityID % 2
WHEN 0 THEN 'Even' ELSE 'Odd' END AS "Status"
FROM HumanResources.Employee;
GO
がのがテーブルSTATIONのために言ってみましょう:
DECLARE @Int INT
SELECT CASE WHEN @Int&0x0001<>0 THEN 'ODD' ELSE 'EVEN' END
TSQLにおけるある種の 'mod'機能はありますか? – Jason
@jasonは:TSQLあなたが のようなものが@myNumberはint型を宣言しないでください剰余演算子% – peacedog