繁体   English   中英

SQL LIKE运算符和尾随空格

[英]SQL LIKE operator and trailing spaces

我是SQL的新手,正试图弄清这个问题。 我的书说我应该可以运行并从以下获得结果:

SELECT * FROM Coffee WHERE ProdNum LIKE '2_-00_' 

运行此程序时,我没有任何结果。 我期望得到类似21-001或24-003的结果。 我尝试了这些可行的替代方法:

SELECT * FROM Coffee WHERE ProdNum LIKE '2_-00%' 

要么

SELECT * FROM Coffee WHERE ProdNum LIKE '2_-00_    '

ProdNum列初始化为10个字符,这就是最后一个起作用的原因。 从我的阅读中,我给人的印象是,LIKE会忽略试用空格。 这个对吗?

字符字段有两种常见类型:

  1. CHAR-这将具有完全定义的长度(因此,在10个字符字段的情况下,它将始终为10个字符,并且如果字符串小于10,则末尾有空格)。

  2. VARCHAR-此字段中的数据长度将小于或等于10个字符。 数据不填充空格。

让我们以CHAR为例:

SELECT * FROM Coffee WHERE ProdNum LIKE '2_-00_'

数据24-001具有4个训练空间,因此ProdNum LIKE'2_-00_'将对该记录返回false,因此将不返回该记录。

现在,VARCHAR

SELECT * FROM Coffee WHERE ProdNum LIKE '2_-00_'

数据24-001将没有尾随空格。 因此ProdNum LIKE'2_-00_'将对该记录返回TRUE,因此将返回记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM