如何从tableA中选择*其中columnA值不以字母"F"开头

sub*_*ash 4 sql

我可以使用SQL查询从tableA中的columna获取数据,其值不以'f'开头吗?

例如:

select * from  tableA where columnA
Run Code Online (Sandbox Code Playgroud)

其中值不以字母'F'开头.

Gre*_*ead 8

对于MSSQL场景,您应该能够将"NOT"运算符与LIKE运算符结合使用.所以你的SQL看起来很像

select * from tableA where columnA NOT LIKE 'F%'


Val*_*ken 5

@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:我将此添加为"回答"因为我没有看到任何评论现有答案的选项 - 我还是新来的......如果有人有解释为什么我没有这个选项,请不要不要犹豫与我联系.

此致,华伦天奴.


ber*_*nie 4

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)