簡體   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