通配符、拼接字段

通配符有些像其他語言中的正則表達式,在過濾模糊值時會很有用。通配符本身實際上是SQL的WHERE子句中有特殊含義的字符,SQL支持集中通配符。爲在搜索子句中使用,必須使用LIKE操作符。通配符搜索只能用於文本字段也就是字符串,其他不可用。
1、“%”:表示任意字符出現任意次數(在ACCESS中爲*)包括0個。但‘%’不能匹配NULL。

USE mytest1
SELECT *
FROM Table_1 
WHERE Favorite LIKE 'd%';

這裏寫圖片描述
可以使用多個%

USE mytest1
SELECT *
FROM Table_1 
WHERE 姓名  LIKE '%l%';

這裏寫圖片描述
2、“_”通配符:只匹配單個字符(DB2中不支持,Access中爲”?”)

USE mytest1
SELECT *
FROM Table_1 
WHERE 姓名  LIKE '%l_';

這裏寫圖片描述
所有DBMS都支持的通配符就這兩個,另外使用通配符儘量不要在搜索模式的開始處,這樣會很慢。

拼接字段:當表中的任意列數據都不是我們想要的,但通過計算或拼接纔是時我們就會用到拼接字段。
拼接:Access和SQL Server 使用“+”,DB2、Orcle、PostgreSQl等中使用“||”。

USE mytest1
SELECT 姓名 + '('+年齡 +')'
FROM Table_1 
WHERE 姓名  LIKE '%l_';

這裏寫圖片描述
可以看到年齡列中多了很多括號,這是因爲SQL的字符對齊功能,如果要去掉,在選擇年齡時用RTRIM(年齡)函數即可。

USE mytest1
SELECT 姓名 + '('+RTRIM (年齡) +')'
FROM Table_1 
WHERE 姓名  LIKE '%l_';

這裏寫圖片描述
如果這個後拼接的列以後要用到應該給他取個名,用AS關鍵字。這樣他就 和其他表列一樣。

USE mytest1
SELECT 姓名 + '('+RTRIM (年齡) +')'
AS addTitle
FROM Table_1 
WHERE 姓名  LIKE '%l_';

這裏寫圖片描述
計算列:選擇列時可以用“+-*/”等計算,然後AS爲一個新列輸出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章