演算子言語比較 - ntuf/Tips GitHub Wiki
JavaScript|C#(.NET) |SQL(Oracle) |PL/SQL(Oracle) | Lisp
---------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------
四則演算 | 値 + 値
| 値 + 値
| 値 + 値
| 値 + 値
| 値 + 値
| 値 + 値
| 値 + 値
| 値 + 値
| 値 + 値
| 値 + 値
| 値 + 値
| 値 + 値
| 値 + 値
| 値 + 値
| 値 + 値
| (+ 値 値 …)
値 - 値
| 値 - 値
| 値 - 値
| 値 - 値
| 値 - 値
| 値 - 値
| 値 - 値
| 値 - 値
| 値 - 値
| 値 - 値
| 値 - 値
| 値 - 値
| 値 - 値
| 値 - 値
| 値 - 値
| (- 値 値 …)
値 * 値
| 値 * 値
| 値 * 値
| 値 * 値
| 値 * 値
| 値 * 値
| 値 * 値
| 値 * 値
| 値 * 値
| 値 * 値
| 値 * 値
| 値 * 値
| 値 * 値
| 値 * 値
| 値 * 値
| (* 値 値 …)
値 / 値
| 値 / 値
| 値 / 値
| 値 / 値
| 値 div 値
| 値 / 値
| 値 / 値
| 値 / 値
| 値 / 値
| 値 / 値
| `値 / 値
値 div 値` | `値 / 値` | `値 / 値` | `値 / 値` | `値 / 値` | `(/ 値 値 …)`
値 \ 値
| 値 \ 値
| 値 \ 値
| 値 \ 値
| | | | | | | | | | | |
値 MOD 値
| 値 Mod 値
| 値 Mod 値
| 値 Mod 値
| 値 mod 値
| | 値 % 値
| 値 % 値
| 値 % 値
| 値 % 値
| `値 % 値
値 mod 値` | `値 % 値` | | `MOD(値,値)` | `MOD(値,値)` | `(mod 値 値)
(rem 値 値)`
比較演算 | =,<>
| =,<>
| =,<>
| =,<>
| =,<>
| =,^=
| `==,!=…数値
eq,ne<span class="cmt">…文字列</span>` | `==,!=` | `==,!=` | `値.equals(値)` | `==,!=
eq,ne` | `==,!=<span class="cmt">…片方が数値なら数値に変換して比較(変換できないなら不一致扱い)</span>
===,!==<span class="cmt">…型の変換を伴わない比較</span>` | `==,!=` | `=, <>,!=,^=
IS NULL,IS NOT NULL` | `=, <>,!=,^=
IS NULL,IS NOT NULL` | `eq`
Is
| Is
| `Is
IsNot` <span class="cmt">…VB2005</span> | `==,!=` | `Object.ReferenceEquals(objA, objB)` | `eql,equal
=,/=<span class="cmt">…数値
3つ以上の引数を持つ場合、「全て等しい」「全て等しくない」</span>`
| `Like` | | `Like` | | | `=~,!~` | | | | | | | `LIKE` | `LIKE` |
<,>,<=,>=
| <,>,<=,>=
| <,>,<=,>=
| <,>,<=,>=
| <,>,<=,>=
| <,>,<=,>=,^<,^>
| `<,>,<=,>=…数値
</span>lt,gt,le,ge<span class="cmt">…文字列</span>` | `<,>,<=,>=` | `<,>,<=,>=` | `<,>,<=,>=` | `<,>,<=,>=
lt,gt,le,ge` | `<,>,<=,>=` | | `<,>,<=,>=,BETWEEN` | `<,>,<=,>=,BETWEEN` | `<,>,<=,>=
<span class="cmt">3つ以上の引数を持つ場合、単調増加・単調減少</span>`
論理演算 | AND,OR
ビットの論理演算 | And,Or
| And,Or
| `AndAlso,OrElse
`
<span class="cmt">左が条件を決定したら、右は計算しない</span> | `and,or`
比較演算より優先度が高い | &,|
| and,or
左が条件を決定したら、右は計算しない | &&,||
左が条件を決定したら、右は計算しない | &&,||
左が条件を決定したら、右は計算しない | &&,||
左が条件を決定したら、右は計算しない | `&&,||
and,or` | `&&,||`
左が条件を決定したら、右は計算しない | | AND,OR
| AND,OR
| `(and 値 値 …)
(or 値 値 …)`
左が条件を決定したら、右は計算しない
否定 | NOT 値
| Not 値
| Not 値
| Not 値
| not 値
| ^値
| not 値
| !値
| !値
| !値
| `!値
not 値` | `!値` | | `NOT 値` | `NOT 値` | `(not 値)`
ビット演算 | なし | | | | なし | | 値 << 数
| 値 << 数
| 値 << 数
| 値 << 数
| | 値 << 数
| | | | (ash 値 正数)
なし | | | | なし | | 値 >> 数
| 値 >> 数
| 値 >> 数
| 値 >> 数
| | 値 >> 数
| | | | (ash 値 負数)
なし | | | | なし | | | なし(unsigned
にして>>) | なし(unsigned
にして>>) | 値 [>>>](http://www.ne.jp/asahi/hishidama/home/tech/java/expression.html) 数
| | 値 >>> 数
| | | |
値 AND 値
| 値 And 値
| 値 And 値
| 値 And 値
| なし | | 値 & 値
| 値 & 値
| 値 & 値
| 値 & 値
| | 値 & 値
| | | | (logand 値 値)
値 OR 値
| 値 Or 値
| 値 Or 値
| 値 Or 値
| なし | | 値 | 値
| 値 | 値
| 値 | 値
| 値 | 値
| | 値 | 値
| | | | (logor 値 値)
値 XOR 値
| 値 Xor 値
| 値 Xor 値
| 値 Xor 値
| なし | | 値 ^ 値
| 値 ^ 値
| 値 ^ 値
| 値 ^ 値
| | 値 ^ 値
| | | | (logxor 値 値)
NOT 値
| Not 値
| Not 値
| Not 値
| なし | | ~値
| ~値
| ~値
| ~値
| | ~値
| | | | (lognot 値)
インクリメント・デクリメント | なし | なし | | | なし | | ++$変数
| ++変数
| ++変数
| ++変数
| | ++変数
| | | | (1+ 値)
なし | なし | | | なし | | --$変数
| --変数
| --変数
| --変数
| | --変数
| | | | (1- 値)
なし | なし | | 変数 += 値
| なし | | $変数 += 値;
| 変数 += 値
| 変数 += 値
| 変数 += 値
| | 変数 += 値
| | | | (incf 変数 値)
なし | なし | | 変数 -= 値
| なし | | $変数 -= 値;
| 変数 -= 値
| 変数 -= 値
| 変数 -= 値
| | 変数 -= 値
| | | | (decf 変数 値)
べき乗 | 値 ^ 指数
| 値 ^ 指数
| 値 ^ 指数
| 値 ^ 指数
| | 値 ** 指数
| 値 ** 指数
| pow(値, 指数)
| pow(値, 指数)
| Math.pow(値, 指数)
| | Math.pow(値, 指数)
| | POWER(値, 指数)
| POWER(値, 指数)
| (expt 値 指数)
代入演算子 | =
| =
| =
| `=
+= -= *= /=
\=
^=` | `:=` | `=` | `=
+= -= *= /= %=
&= |= ^=
<<= >>=
&&= ||=
**=` | `=
+= -= *= /= %=
&= |= ^=
<<= >>=` | `=
+= -= *= /= %=
&= |= ^=
<<= >>=` | `=
+= -= *= /= %=
&= |= ^=
<<= >>= >>>=` | | `=
+= -= *= /= %=
&= |= ^=
<<= >>= >>>=` | `=
+= -= *= /= %=
&= |= ^=
<<= >>=` | | `:=` |
| <label for="id4L1">MSX-BASIC</label> | <label for="id4L2">VBA</label> | <label for="id4L3">VBS</label> | <label for="id4L4">VB.NET</label> | <label for="id4L5">PASCAL</label> | <label for="id4L6">PL/I</label> | <label for="id4L7">Perl</label> | <label for="id4L8">C言語</label> | <label for="id4L9">VC++(MFC)</label> | <label for="id4L10">Java</label> | <label for="id4L11">JSP EL</label> | <label for="id4L12">JavaScript</label> | <label for="id4L13">C#(.NET)</label> | <label for="id4L14">SQL(<a href="http://www.ne.jp/asahi/hishidama/home/tech/index.html#ORACLE">Oracle</a>)</label> | <label for="id4L15">PL/SQL(Oracle)</label> | <label for="id4L16">Lisp</label>
四捨五入 | なし | `Round(値)
Round(値,小数以下の桁)` | `Round(値,小数以下の桁)` | `Math.Round(値)
Round(値,小数以下の桁)` | `round(値)` | | | | | `Math.round(値)` | | `Math.round(値)` | | `ROUND(値)
ROUND(値,小数以下の桁)` | `ROUND(値)
ROUND(値,小数以下の桁)` | `(round 値)`
整数化 | INT(値)
| Int(値)
| Int(値)
| Math.Floor(値)
| | | | | | Math.floor(値)
| | Math.floor(値)
| | FLOOR(値)
| FLOOR(値)
| (floor 値)
-INT(-値)
| -Int(-値)
| -Int(-値)
| Math.Ceiling(値)
| | | | | | Math.ceil(値)
| | Math.ceil(値)
| | CEIL(値)
| CEIL(値)
| (ceiling 値)
切り上げ | | | RoundUp(値,桁)
| | | | | | | | | | | | |
切り捨て | FIX(値)
| Fix(値)
| `Fix(値)
RoundDown(値,桁)` | `Fix(値)` | `trunc(値)` | | | | | | | | | `TRUNC(値)` | `TRUNC(値)` | `(truncate 値)`
絶対値 | ABS(値)
| Abs(値)
| Abs(値)
| Math.Abs(値)
| abs(値)
| | | | | Math.abs(値)
| | Math.abs(値)
| | ABS(値)
| ABS(値)
| (abs 値)
符号 | SGN(値)
| Sgn(値)
| Sgn(値)
| Math.Sign(値)
| | | 値 <=> 0
| | | `Math.signum(値)
Integer.signum(値)
`<span class="cmt">…JDK1.5以降</span> | | | | `SIGN(値)` | `SIGN(値)` | `(signum 値)
(zerop 値)
(plusp 値)
(minusp 値)`
平方 | 値^2
| 値 ^ 2
| 値 ^ 2
| `値 ^ 2
Math.Pow(値,2)` | `sqr(値)` | `値 ** 2` | `値 ** 2` | `pow(値,2)` | `pow(値,2)` | `Math.pow(値,2)` | | `Math.pow(値,2)` | | `POWER(値,2)` | `POWER(値,2)` | `(expt 値 2)`
平方根 | SQR(値)
| Sqr(値)
| Sqr(値)
| Math.Sqrt(値)
| sqrt(値)
| | | | | Math.sqrt(値)
| | Math.sqrt(値)
| | | | `(sqrt 値)
(isqrt 値)`
三角関数 | `SIN(値)
COS(値)
TAN(値)` | `Sin(値)
Cos(値)
Tan(値)` | `Sin(値)
Cos(値)
Tan(値)` | `Math.Sin(値)
Math.Cos(値)
Math.Tan(値)` | `sin(値)
cos(値)` | | | | | `Math.sin(値)
Math.cos(値)
Math.tan(値)` | | `Math.sin(値)
Math.cos(値)
Math.tan(値)` | | | | `(sin 値)
(cos 値)
(tan 値)`
円周率 | なし | WorksheetFunction.Pi
| | | | | | | | Math.PI
| | | | | |
対数 | | | | | | | | | | | | | | | | (log 値 基数)
自然対数 | LOG(値)
| Log(値)
| Log(値)
| Math.Log(値)
| ln(値)
| | | | | Math.log(値)
| | Math.log(値)
| | | | (log 値)
指数関数eのべき乗 | EXP(値)
| Exp(値)
| Exp(値)
| Math.Exp(値)
| exp(値)
| | | | | Math.exp(値)
| | Math.exp(値)
| | | | (exp 値)
奇数判断 | なし | | | | odd(値)
| | | | | | | | | | | `(oddp 値)
<span class="cmt">(evenp 値)</span>`
乱数の種 | RND(負の値)
| `Rnd(負の値)
Randomize` | `Randomize()` | `Rnd(負の値)
Randomize` | | | | | | `Random#setSeed(値)` | | | | | | `(make-random-state 種)`
乱数生成 | RND(正の値)
| Rnd(正の値)
| Rnd()
| Rnd(正の値)
| | | | | | `Random#nextDouble()
Math#random()` | | `Math.random()` | | | | `(random 値)`
0〜1 | 0〜1 | 0〜1 | 0〜1 | 0〜1 | | 0〜1 | 0〜値
if | 条件*(偽-真)+偽 | IIf(条件,真,偽)
| | `IIf(条件,真,偽)
[If](http://msdn.microsoft.com/ja-jp/library/bb513985.aspx)(条件,真,偽)` | | | `条件 ? 真 : 偽` | `条件 ? 真 : 偽` | `条件 ? 真 : 偽` | `条件 ? 真 : 偽` | `条件 ? 真 : 偽` | `条件 ? 真 : 偽` | | `CASE WHEN 条件 THEN 値 〔WHEN 条件 THEN 値〕… 〔ELSE 値〕
END` | `CASE WHEN 条件 THEN 値 〔WHEN 条件 THEN 値〕… 〔ELSE 値〕
END CASE` | `(if 条件 真 偽)`
選択 | | `Switch(
項目 = 値, 変換値,
項目 = 値, 変換値,
True, その他変換値
)` | | | | | | | | | | | | `CASE 項目
WHEN 値 THEN 変換値
WHEN 値 THEN 変換値
ELSE その他変換値
END`
---`DECODE(項目,
値,変換値,
値,変換値,
その他変換値
)` | `CASE 項目
WHEN 値 THEN 変換値
WHEN 値 THEN 変換値
ELSE その他変換値
END CASE` | `(case 式
(値 式 〜)
(値 式 〜)
(otherwise 式 〜)
)`
Choose(項目, 変換値1, 変換値2, 変換値3)
最大 | なし | | | Math.max(値,値)
| | | | max(値,値)
| max(値,値)
| Math.max(値,値)
| | Math.max(値,値,…)
| | GREATEST(値,値,…)
| GREATEST(値,値,…)
| (max 値 値 …)
最小 | なし | | | Math.min(値,値)
| | | | min(値,値)
| min(値,値)
| Math.min(値,値)
| | Math.min(値,値,…)
| | LEAST(値,値,…)
| LEAST(値,値,…)
| (min 値 値 …)
最大公約数 | | | | | | | | | | | | | | | | (gcd 値 値 …)
最小公倍数 | | | | | | | | | | | | | | | | (lcm 値 値 …)
| MSX-BASIC | VBA | VBS | VB.NET | PASCAL | PL/I | Perl | C言語 | VC++(MFC) | Java | JSP EL | JavaScript | C#(.NET) | SQL(Oracle) | PL/SQL(Oracle) | Lisp
null表現 | なし | Nothing
| Nothing
| Nothing
| nil
| | undef
| 0
(NULL
) | 0
(NULL
) | null
| | `null
undefined` | | `NULL` | `NULL` | `nil
()`
nullチェック | なし | 値 Is Nothing
| 値 Is Nothing
| 値 Is Nothing
| | | | 値
| 値
| 値!=null
| | 値!=null
| | 値 IS NOT NULL
| 値 IS NOT NULL
| `(null 値)
(eq 値 '())`
null変換 | なし | | | | | | | 値 ? : <span class="red">0の場合の変換値</span>
(gcc拡張) | | | | | | `NVL(値,
<span class="red">nullの場合の変換値</span>)` | `NVL(値,
<span class="red">nullの場合の変換値</span>)` |
| | | | | | `値 ? <span class="aqu">0以外の場合の変換値</span>:<span class="red">0の場合の変換値</span>` | `値 ? <span class="aqu">0以外の場合の変換値</span> :
<span class="red">0の場合の変換値</span>` | `(値!=null) ? <span class="aqu">null以外の場合の値</span> :
<span class="red">nullの場合の値</span>` | | `(値!=null) ? <span class="aqu">null以外の場合の値</span> :
<span class="red">nullの場合の値</span>` | | `NVL2(値,
<span class="aqu">null以外の場合の変換値</span>,
<span class="red">nullの場合の変換値</span>)` | NVL2()は使えない |