⑴ 如何筛选sql字符串字段中部分值
一、先说筛选字符串字段中部分值的记录。
例如我有一个KKBH(卡口编号)字段,这是一个字典字段(对应另一个实体表(卡口表)的编号字段)。这个字段的值保存所属卡口值域{01,02,03}
本来想到的是通过or来实现,这样需要动态生成SQL语句。
后来想到一个办法用charindex搜索字符串的办法。将所有的要查的卡口编号组成类似'01@02'这样待查字符串。sql查询时通过charindex筛选出在待查字符串里有的KKBH的记录。
经测试使用or与使用charindex,两者在MSSQL中执行效率差不多。
具体实现:
用户界面查询需求:可能搜索N个卡口的记录(N的值域{1,所有卡口个数})。设计这个UI的形式一共三种:
一、一个多选listbox。用户界面运行时将卡口字典表载入listbox信息。
二、两个listbox,左边为待选,右边为已选,中间加两个按钮添加与删除。用户界面运行时将卡都字典表载入左边的listbox。
三、多个Checkbox。可以在界面设计阶段直接做死字典表,即有几个卡口就话几个checkbox。或者在程序运行根据字典表绘制动态绘制checkbox。
UI的优缺点这里不讨论,我这里选择第三种方式的动态绘制。
在查询阶段根据所选卡口生成待选字符串入:"01@02”
并将此条件传回后台查询服务程序
后台查询服务里只要待查字符串作为参数传入查询的SQL语句中(sql片段): charindex(卡口编号,@待查字符串)。当然也可以手动生成SQL方式传入"charindex(卡口编号,'"+待查字符串+"')".
二、模糊查询。
使用like的模糊查询发生效率是很低。
提高的解决办法与:
一、用full text index 结合contains函数。全文本索引,带了空间占用率很高。
二、通过charindex+substring实现简易模糊查询。使用substring分段,charindex实现类似like '%关键字%'。
⑵ sql子查询如何使用主查询里的字段作为筛选条件
sql子查询使用主查询里的字段作为筛选条件的方法:
使用SELECT子句、GROUP BY子句、HAVING子句、ORDER BY子句中均可使用子查询语句,较常用的是WHERE子句、HAVING子句和FROM子句。
子查询是在一个完整的查询语句中,嵌套不同功能的小查询,从而完成复杂查询的一种编写形式。本部分主要介绍非关联子查询,关联子查询的适用场景,语句写法,执行逻辑及相对应的注意事项。
⑶ 数据库搜索的时候怎么显示我想要的部分字段呢
你可以试试format函数,它可以将字段的显示格式化。比如:SELECT format('Hello %s', 'World');
⑷ SQL语句,如何将一个字段中的一部分字符串作为条件查询
select*
from表
wheresubstring(code,2,1)=0andsubstring(code,3,1)=0andsubstring(code,4,1)=0andsubstring(code,5,1)=0
or
select*
from表
wheresubstring(code,2,4)='0000'
⑸ excel怎么筛选指定字段
1、将表格中的工资水平大于3000的提取出“职称”、“姓名”、“工资”数据。
⑹ 如何筛选数据库某个字段内的指定内容
自动筛选后,设置条件:
里面选“包含”
写上
“*A*2*”
意思是什么只要含A和2的都会筛选出来,*不能少也不能多
⑺ 数据库中筛选地址包含某个字段怎么表示
如果是利用窗体中控件内的值来筛选,就一般在查询条件中写入:
=LIKE IIF(ISNULL([控件值]),"*", [控件值])
如果要模糊查询,就这样
=LIKE IIF(ISNULL([控件值]),"*", '*'&[控件值]&'&')
如果是其它方式,可以用比如
Dlookup("字段名","表名或查询名","条件")
⑻ sql 查询中,要筛选出某个字段的部分字符,该如何操作 例如表a,有个字段是size.
如果都是 数字mmX数字mm的话 那就可以,这有规律,第一个数字在mm之前,第二个数字在x和mm之间你现在就是要获取 第一个mm和X还有mm的三个位置就好了
然后就可以获取到你想要的数字
dim index1 as integer'第一个mm的位置
dim index2 as integer''第二个mm的位置
dim index3 as integer''x的位置
dim long as integer
dim width as integer
dim size as string
size="100mmx150mm"
index1 = InStr(1, size, "mm")
long=rigt(size,index1)
index3=instr(1,size,"x")
index2=instr(1,right(size,len(size)-index3),"mm")
width=left(right(size,len(size)-index3),index2)
⑼ 我的数据库很大,我想筛选某一字段的某一范围
因为数据量实在是太大,如果用ACCESS数据库自带表筛选功能,
对于超过100万条字的记录表来说其筛选算法导致的系统开销实在是太大了!不是一般电脑能够负担的。
如果你要将“字段13”直接转换为数字类型,同样的道理,其产生的系统开销也不是一般电脑所能承受的!
那么如果你要查出文本类型“字段13”200以上的数据,可以使用Val函数编写一个选择查询,取名“查询2“,
具体代码如下:
SELECT [自贡---1212697].*
FROM [自贡---1212697]
WHERE (((Val([字段13]))>=200))
ORDER BY Val([字段13]);
然后运行(双击)上述查询,你就可以非常轻松地得到你要的结果(这里使用了排序,如果不排序速度更快),
耗时几十秒左右即可输出你要的结果。
至于如何将字段13、14、15转换成数字类型,可以将下列SQL代码保存为一个生成表查询,取名“转换为新表”
SELECT 字段1, 字段2, 字段4, 字段5, 字段6, 字段7, 字段8, 字段9, 字段10, 字段11, 字段12,
Val(字段13) AS 数字字段13, Val(字段14) AS 数字字段14, Val(字段15) AS 数字字段15 INTO NewTable
FROM [自贡---1212697];
双击查询“转换为新表”,大约耗时一分钟即可完成转换,生成的新表原来字段13、14、15就变成数字字段了。
⑽ 如何筛选SQL字符串字段中部分值
如果需要筛选SQL字符串字段中部分值 应该怎么做呢?下面就教您筛选SQL字符串字段中部分值的记录的方法 供您参考
例如有一个KKBH(卡口编号)字段 这是一个字典字段(对应另一个实体表(卡口表)的编号字段) 这个字段的值保存所属卡口值域{ }
本来想到的是通过or来实现 这样需要动态生成SQL语句
后来想到一个办法用charindex搜索SQL字符串的办法 将所有的要查的卡口编号组成类似 @ 这样待查字符串 sql查询时通过charindex筛选出在待查SQL字符串里有的KKBH的记录
经测试使用or与使用charindex 两者在MSSQL中执行效率差不多
具体实现
用户界面查询需求 可能搜索N个卡口的记录(N的值域{ 所有卡口个数}) 设计这个UI的形式一共三种
一 一个多选listbox 用户界面运行时将卡口字典表载入listbox信息
二 两个listbox 左边为待选 右边为已选 中间加两个按钮添加与删除 用户界面运行时将卡都字典表载入左边的listbox
三 多个Checkbox 可以在界面设计阶段直接做死字典表 即有几个卡口就话几个checkbox 或者在程序运行根据字典表绘制动态绘制checkbox
UI的优缺点这里不讨论 我这里选择第三种方式的动态绘制
在查询阶段根据所选卡口生成待选SQL字符串入 " @ ”
并将此条件传回后台查询服务程序
lishixin/Article/program/MySQL/201311/29554