筛选SQL字符串字段中部分值的记录

数据库 SQL Server
下面为您介绍筛选SQL字符串字段中部分值的方法,供您参考,希望对您学习SQL语言能够有些许帮助。

如果需要筛选SQL字符串字段中部分值,应该怎么做呢?下面就教您筛选SQL字符串字段中部分值的记录的方法,供您参考。

例如有一个KKBH(卡口编号)字段,这是一个字典字段(对应另一个实体表(卡口表)的编号字段)。这个字段的值保存所属卡口值域{01,02,03}

本来想到的是通过or来实现,这样需要动态生成SQL语句。

后来想到一个办法用charindex搜索SQL字符串的办法。将所有的要查的卡口编号组成类似'01@02'这样待查字符串。sql查询时通过charindex筛选出在待查SQL字符串里有的KKBH的记录。

经测试使用or与使用charindex,两者在MSSQL中执行效率差不多。

具体实现:

用户界面查询需求:可能搜索N个卡口的记录(N的值域{1,所有卡口个数})。设计这个UI的形式一共三种:

一、一个多选listbox。用户界面运行时将卡口字典表载入listbox信息。

二、两个listbox,左边为待选,右边为已选,中间加两个按钮添加与删除。用户界面运行时将卡都字典表载入左边的listbox。

三、多个Checkbox。可以在界面设计阶段直接做死字典表,即有几个卡口就话几个checkbox。或者在程序运行根据字典表绘制动态绘制checkbox。

UI的优缺点这里不讨论,我这里选择第三种方式的动态绘制。

在查询阶段根据所选卡口生成待选SQL字符串入:"01@02”

并将此条件传回后台查询服务程序

后台查询服务里只要待查SQL字符串作为参数传入查询的SQL语句中(sql片段): charindex(卡口编号,@待查字符串)。当然也可以手动生成SQL方式传入"charindex(卡口编号,'"+待查字符串+"')".

 

 

【编辑推荐】

使用SQL查询连续号码段的方法

实现子孙树查询的经典SQL语句

查询表的字段名的sql语句写法

SQL查询最大最小值的示例

查询表结构的SQL语句

 

责任编辑:段燃 来源: 互联网
相关推荐

2011-07-29 11:20:51

MySQL数据库字段重复

2010-09-09 11:48:00

SQL函数字符串

2010-09-13 15:12:26

sql server字

2010-10-08 15:49:09

Mysql更新字段

2010-06-28 15:18:51

SQL Server

2010-11-26 10:29:21

MySQL批量替换

2010-11-22 12:04:09

MySQL字段

2010-11-08 17:07:41

SQL Server字

2010-09-06 17:30:46

SQL函数

2010-09-02 09:58:24

SQL删除

2010-06-17 16:00:59

SQL Server

2021-03-14 15:07:55

SQLServer数据库字符串

2009-07-29 18:06:01

Oracle实现BLO

2010-04-15 16:47:46

Oracle字段

2010-09-13 15:06:40

sql server字

2010-09-03 11:35:50

2023-10-08 08:37:28

SQL字符串数据

2010-07-09 09:54:34

SQL Server字

2021-12-15 19:37:49

索引字符串字段

2009-09-18 15:22:14

DataContextLINQ to SQL
点赞
收藏

51CTO技术栈公众号