我可以使用SQL查询从tableA中的columna获取数据,其值不以'f'开头吗?
例如:
select * from tableA where columnA
Run Code Online (Sandbox Code Playgroud)
其中值不以字母'F'开头.
对于MSSQL场景,您应该能够将"NOT"运算符与LIKE运算符结合使用.所以你的SQL看起来很像
select * from tableA where columnA NOT LIKE 'F%'
@Evan:关于SQL Server不区分大小写的声明实际上并不完全正确.区分大小写取决于整理.服务器具有排序规则(在安装时选择),数据库具有排序规则(在创建数据库时选择),文本列具有排序规则(在创建列时选择).如果在创建数据库时未指定排序规则,则服务器排序规则将是默认排序规则.如果在创建列时未指定排序规则,则它将获得与数据库相同的排序规则.
但在大多数情况下,人们(幸运的是)使用不区分大小写的排序规则来安装他们的服务器,例如Latin1_General_CI_AS.CI =不区分大小写,AS =重音敏感.
在SQL Server上,如果我需要获得小f和大写字母F,我会选择:
where columnA NOT LIKE 'F%' and columnA NOT LIKE 'f%'
Run Code Online (Sandbox Code Playgroud)
PS:我将此添加为"回答"因为我没有看到任何评论现有答案的选项 - 我还是新来的......如果有人有解释为什么我没有这个选项,请不要不要犹豫与我联系.
此致,华伦天奴.
SELECT columnA
FROM tableA
WHERE SUBSTR(columnA,1,1) <> 'f'
Run Code Online (Sandbox Code Playgroud)
如果您同时需要“f”和“F”:
SELECT columnA
FROM tableA
WHERE SUBSTR(columnA,1,1) NOT IN ('f','F')
Run Code Online (Sandbox Code Playgroud)
从Lerxst 的例子来看,一些 DBMS 还可以让你做一些有趣的事情,比如:
SELECT columnA
FROM tableA
WHERE columnA NOT LIKE ALL ('f%','F%')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4242 次 |
| 最近记录: |