① sql 如何用like模糊子查询
select * from a where [name] like (select top 1 '%'+convert(varchar(200),code)+'%' from b )
查询分析器中测试通过
程序中的话要保证传递给sql的是这个
② 怎样在子查询中使用like
2楼的正解,如果方法觉得复杂的话,用这个也可以,
以SQL SERVER为例子,必要的话可以做procere:
declare @nearbystop varchar(max)
set @nearbystop = (select nearbystop from areaTable where a_name like '%校场%')
select * from bus where lines like '%'+@nearbystop+'%'
执行结果:
--------------------------------------------------------------------
id code lindes
1 1路 火车站-百货大楼-体育馆-公交公司
2 2路 汽车站-火车站-建设路-西市场-建材市场
搞定!收工
③ sql 子查询如何写
select id from 表A
full join
(select id,count(id) from 表B group by id)
on A.id=B.id
④ 在SQL 脚本中如何使用LIKE嵌套子查询
select 商品表.*,类别表.*
from 商品表, 类别表
where 商品表.proctcategory like '%' + 类别表.proctcategory + '%'
⑤ sql 分组子查询怎么写
你的意思是不是“找出所有status字段不是OK的BarCode,然后显示找到的这些BarCode对应的所有的记录”
比如:某个BarCode有三条记录,这三条记录中有一条status不是OK,那么就显示这三条记录;另一个BarCode有亮条记录,他们的status状态都是OK,那么就不显示。是这个意思不是。
如果是那么不需要分组,直接子查询就可以。
子查询的内容是查询status!='OK'(因为不知道是不是只有NG一种不OK的状态所以用了“不等于”,具体的要根据业务情况来定)的BarCode。
外层就是利用子查询查到的BarCode去查询就可以了,可以直接用in或者exist都可以。
比如某个编号为1111的有三条数据,其中有一条的status不是ok,那么子查询就会找到这条不是ok的记录,并返回编号1111,外层查询在利用编号1111,查到全部的三条记录。
⑥ sql like值为子查询结果时怎么写呢
like 后边加的是通配符 % 或者 _ (百分号 或 下划线)
并且like后边的内容需要放在两个单引号里的。
例如 :
like ‘%s%' 或 's_' 等等。
你上边的那句,其实将like 改成 in 就可以了。
不需要用like 语句。
⑦ sql中用like模糊匹配,%前置导致索引失效,完成子查询后再对某字段展开模糊匹配会好点吗 还是更慢
like在在意效率的场景下不要用,尽量用利用有索引的列查询,可以借助sql工具查看执行后索引使用情况,好像是explan,很久没用记不清了,中文叫执行计划,查询语句都能给出索引使用情况,先缩小数据范围,再用like语句效率肯定会好,当然数据量也是决定因素,几百、上千万以上的数据需要做更精细的查询优化。
⑧ 在SQL 脚本中如何使用LIKE嵌套子查询
ProctCategory 123 是一个类别?还是1、2、3类别都包括了?
如果是一个类别:
select * from 类别表 where ProctCategoryId =
(select ProctCategory from 商品表 where Proctname ='商品1')
如果商品1同时属于1、2、3三个类别,建议在商品表ProctCategory 字段不要存储为123而改为1,2,3,这样便于查询:
select * from 类别表 where ProctCategoryId in
(select ProctCategory from 商品表 where Proctname ='商品1')