我想做一个搜索语句并查询这样的事情
select * from table where col like '%vkvk%'
Run Code Online (Sandbox Code Playgroud)
但通过反复试验,我得出的结论是,访问不适用于LIKE或通配符运算符.有没有人有其他解决方案,因为我实际上并不是这样,所以我真的不知道.
Jay*_*ggs 13
尝试:
select * from table where col like '*vkvk*'
Run Code Online (Sandbox Code Playgroud)
使用星号表示通配符.
如果要使用某些类似于SQL Server的SQL语法,请转到"访问选项"并将其设置为"SQL 92"模式.据我所知,这有两个主要的事情(可能还有其他事情):
允许您使用%和_作为通配符而不是Jet SQL的*和?.
允许您使用非疯狂的派生表语法:
SELECT MyTable.*
FROM (SELECT * FROM SomeTable) As MyTable
Run Code Online (Sandbox Code Playgroud)...而不是bollixed-up Jet方法:
SELECT MyTable.*
FROM [SELECT * FROM SomeTable]. As MyTable
Run Code Online (Sandbox Code Playgroud)
...由于必须在派生表定义中使用括号,因此必须在表格和字段名称中包含空格,这会完全打破Jet语法.
正如我所说,可能还有其他一些变化,但如果您是SQL Server程序员,您可能会发现更容易设置SQL 92模式.另一方面,大多数Access帮助使用Access/Jet/ACE约定,因此您可能会因尝试使用它而感到更加困惑.
编辑:
自从发布此文件以来,我发现在现有的Access应用程序中打开SQL 92模式存在问题.我发现的两个是:
它更改了保留字列表,这意味着以前使用SQL 89保留字列表的SQL可能会中断(如果它使用SQL 92保留字).
它可以使用隐藏的第一列(这是Access应用程序中非常常见的UI对象)来破坏多列组合框.具体来说,它会破坏Autoexpend/autoselect行为.
可能还有其他问题,但是当我在客户端项目中打开SQL 92模式来测试SO的某些内容并且忘记在分发下一次更新时将其关闭时,我意外地发现了这些问题.幸运的是,很快就发现了问题,并且将SQL 92模式识别为问题的原因并没有花太多时间.
简而言之,我不认为Access中的SQL 92模式对任何人都有用.在我看来,这是一个针对那些不会首先以交互方式使用Access的人的功能.
| 归档时间: |
|
| 查看次数: |
9256 次 |
| 最近记录: |