在Access Sql 1或2中返回-1的值为true。如何让它返回3,这是值的数字orring(?)。这适用于Sql Server
select 1 | 2
返回3
答案 0 :(得分:2)
答案 1 :(得分:0)
只是要添加到CRice答案,BOR
就是这里所需要的。
这是一个使用Jet 4.0的repro,它的OLE DB提供程序和VBA代码中的ADO:
Sub TestBOR()
On Error Resume Next
Kill Environ$("temp") & "\DropMe.mdb"
On Error GoTo 0
Dim cat
Set cat = CreateObject("ADOX.Catalog")
With cat
.Create _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & _
Environ$("temp") & "\DropMe.mdb"
With .ActiveConnection
Dim Sql As String
Sql = "SELECT 1 BOR 2;"
.Execute Sql
Dim rs
Set rs = .Execute(Sql)
MsgBox rs.GetString
End With
Set .ActiveConnection = Nothing
End With
End Sub
结果是3,正如所料。
如果您想使用Access UI执行此操作,则需要确保它位于ANSI-92 Query Mode中。如果你想用DAO这样做......你不能! DAO始终使用ANSI-89查询模式。使用ADO因为它始终使用ANSI-92查询模式。令人高兴的是,您可以在同一个项目中混合使用ADO代码和DAO代码。