我有一些旧代码的语法如下。
SELECT *
FROM Tb
WHERE (column_name\(1)) mod 2 = 1
有人能解释一下where子句中的语句column_name\(1)
吗。
由于,它是无效语法。如果它是C#中的字符串,则可能导致:
SELECT *
FROM Tb
WHERE (column_name(1)) mod 2 = 1
可以简化为:
SELECT *
FROM Tb
WHERE column_name mod 2 = 1
*Test for Erik:*
The trick is, that Mod by itself does the integer rounding.
~~~vba
Public Sub TestMod()
Dim Value As Double
Dim Index As Integer
For Index = 0 To 15
Value = Index / 4
Debug.Print Value, Value 1, Value Mod 2, (Value 1) Mod 2, Round(Value) Mod 2
Next
End Sub
Output:
~~~vba
0 0 0 0 0
0,25 0 0 0 0
0,5 0 0 0 0
0,75 1 1 1 1
1 1 1 1 1
1,25 1 1 1 1
1,5 2 0 0 0
1,75 2 0 0 0
2 2 0 0 0
2,25 2 0 0 0
2,5 2 0 0 0
2,75 3 1 1 1
3 3 1 1 1
3,25 3 1 1 1
3,5 4 0 0 0
3,75 4 0 0 0