SQL15 查看学校名称中含北京的用户(通配符使用)
描述
題目:現在運營想查看所有大學中帶有北京的用戶的信息,請你取出相應數據。
示例:用戶信息表:user_profile
根據示例,你的查詢應返回如下結果:
示例1
輸入:
drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` int NOT NULL, `device_id` int NOT NULL, `gender` varchar(14) NOT NULL, `age` int , `university` varchar(32) NOT NULL, `gpa` float); INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大學',3.4); INSERT INTO user_profile VALUES(2,3214,'male',null,'復旦大學',4.0); INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大學',3.2); INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大學',3.6); INSERT INTO user_profile VALUES(5,5432,'male',25,'山東大學',3.8); INSERT INTO user_profile VALUES(6,2131,'male',28,'北京師范大學',3.3);輸出:
2138|21|北京大學 6543|20|北京大學 2131|28|北京師范大學分析:
字符匹配
一般形式為:列名 [NOT ] LIKE
匹配串中可包含如下四種通配符:
- _:匹配任意一個字符;
- %:匹配0個或多個字符;
- [ ]:匹配[ ]中的任意一個字符(若要比較的字符是連續的,則可以用連字符“-”表 達 );
- [^ ]:不匹配[ ]中的任意一個字符。
例1.查詢學生表中姓‘張’的學生的詳細信息。
SELECT * FROM 學生表 WHERE 姓名 LIKE ‘張%’
例2.查詢姓“張”且名字是3個字的學生姓名。
SELECT * FROM 學生表 WHERE 姓名 LIKE '張__’
如果把姓名列的類型改為nchar(20),在SQL Server 2012中執行沒有結果。原因是姓名列的類型是char(20),當姓名少于20個漢字時,系統在存儲這些數據時自動在后邊補空格,空格作為一個字符,也參加LIKE的比較。可以用rtrim()去掉右空格。
SELECT * FROM 學生表 WHERE rtrim(姓名) LIKE '張__'
例3.查詢學生表中姓‘張’、姓‘李’和姓‘劉’的學生的情況。
SELECT * FROM 學生表 WHERE 姓名 LIKE '[張李劉]%’
例4.查詢學生表表中名字的第2個字為“小”或“大”的學生的姓名和學號。
SELECT 姓名,學號 FROM 學生表 WHERE 姓名 LIKE '_[小大]%'
例5.查詢學生表中所有不姓“劉”的學生。
SELECT 姓名 FROM 學生 WHERE 姓名 NOT LIKE '劉%’
例6.從學生表表中查詢學號的最后一位不是2、3、5的學生信息。
SELECT * FROM 學生表 WHERE 學號 LIKE '%[^235]'
AC代碼:
select device_id,age,university from user_profile where university like "%北京%";總結
以上是生活随笔為你收集整理的SQL15 查看学校名称中含北京的用户(通配符使用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ins风照片要怎么拍电脑如何ins拍照
- 下一篇: 每日一练(第一天)