[英]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會忽略試用空格。 這個對嗎?
字符字段有兩種常見類型:
CHAR-這將具有完全定義的長度(因此,在10個字符字段的情況下,它將始終為10個字符,並且如果字符串小於10,則末尾有空格)。
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.