如何用sql查询一个字符串的一部分

SUBSTRING('2009/2/5',1,6)SUBSTRING(<表达式>,<起始位置>,长度)返回从字符串左侧的起始位置字符开始的length字符的一部分。
left('2009/2/5',6)LEFT(,)返回Character_expression左侧的integer_expression字符。
----------------------------------------------------------CONVERT(varchar(7),CONVERT(datetime,'2009/5'),120)返回结果2009-02REPLACE(CONVERT(varchar(7),CONVERT(datetime,'2009/2)/5'),120),'-','/')返回结果2009/02CONVERT(varchar(7),CONVERT(datetime,'2009/12/5'),120)返回结果2009-12REPLACE(CONVERT(varchar(7),CONVERT(datetime,'2009/12/5'),120),'-','/')返回结果2009/12

sql取字符串中符合指定字符开头指定字符结尾的部分字符串有多少?

如果要在SQL查询中查找以指定字符开头的字符串部分以及按指定字段值以指定字符开头的部分,可以使用SUBSTRING_INDEX函数和LOCATE函数。
这是一个具体的例子。

选择

下标(脚本,

地点('/*',脚本),

find('*/',script)-LOCATE('/*',script)+2)

FROMtable_name;

该查询的主要步骤如下:

到执行LOCATE函数在脚本字段中使用“/”并找到“/”。

使用SUBSTRING函数从脚本字段中提取“/”和“/”之间的字符串部分。

请注意,此查询假定“/”和“/”每个脚本字段值仅出现一次。
如果“/”和“/”出现多次或根本不出现,则需要更复杂的查询来处理这些情况。

如何筛选SQL字符串字段中部分值

如果需要过滤SQL字符串字段中的某些值该怎么办?下面教大家如何过滤SQL字符串字段中含有部分值的记录,供大家参考。
比如有一个字段KKBH(卡口编号),它是一个字典字段(对应另一个实体表(卡口表)的编号字段)。
该字段的值存储在卡口值范围{01,02,03}中。
最初的想法是通过or来实现,这需要动态生成SQL语句。
后来我想到了一个方法,使用charindex来搜索SQL字符串。
将所有要检查的检查点编号组合成一个检查点字符串,如“01@02”。
在SQL查询时,charindex用于过滤SQL字符串中的KKBH记录进行检查。
经过测试,在MSSQL中使用or和使用charindex的执行效率几乎是一样的。
具体实现:UI查询需求:可以查询N个卡口的记录(N的取值范围为{1,所有卡口的数量})。
该用户界面设计有三种形式:1.多选列表框。
UI运行时,将卡口词典表加载到列表框信息中。
2、两个列表框,左边一个选中,右边一个选中,中间添加两个按钮,用于添加和删除。
当UI运行时,Kadu字典表被加载到左侧的列表中。
3.多个复选框。
从界面设计阶段就可以直接创建字典表,也就是说有多少个复选框就有多少个。
或者在程序执行过程中根据字典表动态绘制复选框。
这里不会讨论用户界面的优缺点。
这里我选择第三种动态绘制方式。
在查询阶段,根据选择的卡口生成需要选择的SQL字符串:“01@02”,并将该条件返回给后台的查询服务程序。
在后台查询服务中,只检查SQL字符串。
作为查询的SQL语句中的参数传递。
(sql片段):charindex(卡口号,@string来检查)。
当然,你也可以手动生成SQL并传递“charindex(bayonetnumber,'”+要检查的字符串+“')”。