sql 如何在查询的数据中加%号

2025-02-24 01:14:28
推荐回答(5个)
回答1:

%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'
将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。
另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件
SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'
若使用 SELECT * FROM [user] WHERE u_name LIKE '%三%猫%' 虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。
不知道你是否看懂,不懂可以追问

回答2:

题主的意思应该是在查询结果为int型数据后面,加上%号,比如查询及格率的时候。

提供一种方法,可以用cast函数将int型数据转换为varchar型,然后再加上%就OK了。

模板是:cast(int型数据  as varchar)+ '%'

举个例子:

比如我想查询数据库的及格率(按照百分比输出):

CAST(round(100*sum(case when c.cname='数据库' and s.score>=60 then 1 else 0 end)/SUM(case when c.cname='数据库' then 1 else 0 end),0) as varchar) +'%' as 及格率

回答3:

添加中括号即可,% 转换为 [%] ,这样%就是指希望匹配的字符本身包括的%而不是专门用于匹配的通配符

回答4:

select * from table where a like ‘%aa[%]bb%’

回答5:

列名 like '%查询字符%'