sql字符串开头
‘壹’ sql中要查询以某个字符串开始的记录怎么做呢
where left(name,3)='abc'
‘贰’ sql 提取第一个字符
sql怎样提取第一个字符的方法用到的是substring() 方法用于提取字符串中介于两个指定下标之间的字符。
返回值
一个新的字符串,该字符串值包含stringObject的一个子字符串,其内容是从start处到stop-1 处的所有字符,其长度为stop减start。
2.说明
substring() 方法返回的子串包括start处的字符,但不包括stop处的字符。
如果参数start与stop相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果start比stop大,那么该方法在提取子串之前会先交换这两个参数。
‘叁’ 在sql查询字段中怎么去判断是以某字母开头
方法1:用%即可达到。
例如:SELECT*FROMusersWHEREemaillike"%b@email.com%"。
方法2:使用mysql字符串函数find_in_set();
SELECT*FROMusersWHEREfind_in_set('aa@email.com',email);
注意,mysql字符串函数find_in_set(str1,str2)返回str2中str1的位置索引,str2必须被分割成“,”。
方法3:多值模糊查询,使用mysql正则:REGEXP。
这个方法相当于(比如'%1%'或'%3%'或'%5%')。
从'by_content'中选择*,其中标题REGEXP'(1|,3|5)'。
(3)sql字符串开头扩展阅读:
Mysql字符串函数:FIND_IN_SET()
语法:
strlistFIND_IN_SET(STR)
第一个参数STR是要查找的字符串。
第二个参数strlist是要搜索的字符串的逗号分隔列表。
如果字符串STR位于由N个子链组成的字符串行表中,则返回值的范围为1到N。
字符串行表是由','符号分隔的子链组成的字符串。如果第一个参数是常量字符串,第二个参数是类型集列,则FIND_IN_SET()函数被优化为使用位。
如果STR不在strlist中,或者strlist是空字符串,则返回值为0。如果任何参数为空,则返回值为空。当第一个参数包含逗号(',')时,此函数将无法正常工作。
‘肆’ sql 删去记录中指定字符开头的字符串
什么数据库
sqlserver中好像没有正则替换的函数,你得自己写了
CREATE FUNCTION dbo.regexReplace
(
@source ntext, --原字符串
@regexp varchar(1000), --正则表达式
@replace varchar(1000), --替换值
@globalReplace bit = 1, --是否是全局替换
@ignoreCase bit = 0 --是否忽略大小写
)
RETURNS varchar(1000) AS
BEGIN
DECLARE @hr integer
DECLARE @objRegExp integer
DECLARE @result varchar(5000)
EXEC @hr = sp_OACreate 'VBScript.RegExp', @objRegExp OUTPUT
IF @hr <> 0 BEGIN
EXEC @hr = sp_OADestroy @objRegExp
RETURN null
END
EXEC @hr = sp_OASetProperty @objRegExp, 'Pattern', @regexp
IF @hr <> 0 BEGIN
EXEC @hr = sp_OADestroy @objRegExp
RETURN null
END
EXEC @hr = sp_OASetProperty @objRegExp, 'Global', @globalReplace
IF @hr <> 0 BEGIN
EXEC @hr = sp_OADestroy @objRegExp
RETURN null
END
EXEC @hr = sp_OASetProperty @objRegExp, 'IgnoreCase', @ignoreCase
IF @hr <> 0 BEGIN
EXEC @hr = sp_OADestroy @objRegExp
RETURN null
END
EXEC @hr = sp_OAMethod @objRegExp, 'Replace', @result OUTPUT, @source, @replace
IF @hr <> 0 BEGIN
EXEC @hr = sp_OADestroy @objRegExp
RETURN null
END
EXEC @hr = sp_OADestroy @objRegExp
IF @hr <> 0 BEGIN
RETURN null
END
RETURN @result
END
我测试了一下,没有问题:(将字符'第'紧接后面连续出现的数字都替换成空)
print dbo.regexReplace('中国 统计 年鉴 2007 总 第26 期','第\d*','')
结果是 中国 统计 年鉴 2007 总 期
‘伍’ SQL 选出以字符串开头的记录
:给你一个程序段,既有[精确]又有[模糊]两种方式的查询
SQL语句;只是我用VB6+SQL SERVER2000写的.
共参考吧!
Private Sub CmdCX_Click()
On Error Resume Next
Dim sSQL, L_Name As String
Dim K_je As Double
mConn.Execute " Delete Bg_L_IOMX_1" '清过程用表
Clea_RowCol '清数据网格
'Text1.Text = "" '清除【条件】【提示】框的内容
'Set RS = CreateObject("ADODB.Recordset") ' New ADODB.Recordset
Set RS3 = New ADODB.Recordset
DT1 = Format(Trim(D1.Value), "yyyy-mm-dd")
DT2 = Format(Trim(D2.Value), "yyyy-mm-dd")
If DT1 = DT2 Then MsgBox "正确方法,应选择<日期的区间>后,再进行【开始查询】,OK!!", vbOKOnly, "操作提示": Exit Sub
' ##按;日期;数据;字符三种类型检索//=#" & DT0 & "#///WHERE (((LP_001.被保险人名称) Like "*安*"));
If Txt_TJ.Text = "" Then MsgBox "应填好【查询条件】,再点击【开始查询】按钮!!!", vbOKOnly, "操作提示": Exit Sub
If ComboCX.Text = "船员分类" Then
Txt_TJ.Text = Trim(UCase(Txt_TJ.Text)) & "%"
sSQL = " Select * From Bg_L_IOMX Where (((Bg_L_IOMX.分类) Like '" & Txt_TJ.Text & "')) and 日期>='" & DT1 & "' and 日期<='" & DT2 & "' Order by 编号"
End If
If ComboCX.Text = "船名" Then
sSQL = " Select * From Bg_L_IOMX where " & ComboCX.Text & " = '" & Txt_TJ.Text & "' And 出数量<>0 and 日期>='" & DT1 & "' and 日期<='" & DT2 & "' Order by 编号"
End If
If ComboCX.Text = "工号" Then
Txt_TJ.Text = Trim(UCase(Txt_TJ.Text)) & "%"
sSQL = " Select * From Bg_L_IOMX where ((Bg_L_IOMX.ID) Like '" & Txt_TJ.Text & "') and 日期>='" & DT1 & "' and 日期<='" & DT2 & "' Order by 编号"
End If
If ComboCX.Text = "姓名" Then
Txt_TJ.Text = Trim(UCase(Txt_TJ.Text)) & "%"
sSQL = " Select * From Bg_L_IOMX where ((Bg_L_IOMX.领用人) Like '" & Txt_TJ.Text & "') and 日期>='" & DT1 & "' and 日期<='" & DT2 & "' Order by 编号"
End If
If ComboCX.Text = "派遣号" Then
'Text1.Text = "【派遣号】可采用<精确>方式,注:组合=船名第1个字+上船时间的XXXX月日;进行【条件查询】!"
sSQL = " Select * From Bg_L_IOMX where " & ComboCX.Text & " = '" & Txt_TJ.Text & "'And 出数量<>0 and 日期>='" & DT1 & "' and 日期<='" & DT2 & "' Order by 编号"
End If
mConn.Execute "Insert Into Bg_L_IOMX_1 " & sSQL
Call_MX '调用符合条件数据!!
End Sub
‘陆’ sql 怎么取 字符串的前几位
sql中,使用LEFT函数即可取到字符串的前几位。
LEFT(c, number_of_char)用于返回某个被请求的文本域的左侧部分,其中c代表被请求的文本域,number_of_cha代表需要取出的字符串位数。如“LEFT("..com", 6)”即可取得字符串""。
(6)sql字符串开头扩展阅读:
sql中,常用函数介绍:
1、AVG():返回平均值
2、COUNT():返回行数
3、FIRST():返回第一个记录的值
4、LAST():返回最后一个记录的值
5、MAX():返回最大值
6、MIN():返回最小值
7、SUM():返回总和
8、UCASE():将某个字段转换为大写
9、LCASE():将某个字段转换为小写
10、MID():从某个文本字段提取字符
11、LEN():返回某个文本字段的长度
12、ROUND():对某个数值字段进行指定小数位数的四舍五入
13、NOW():返回当前的系统日期和时间
14、FORMAT():格式化某个字段的显示方式
15、INSTR():返回在某个文本域中指定字符的数值位置
16、LEFT():返回某个被请求的文本域的左侧部分
17、RIGHT():返回某个被请求的文本域的右侧部分
‘柒’ 删除sql数据库中某列字符串的开头部分相同的语句怎么写
delete from 表名 where 列名 like '开头相同部分%'
‘捌’ sql怎么取字符串的前几位
sql语句截取字符串前几位语句:
select substr(cont_no,1,9) from for_contract
SUBSTRING ( expression , start , length )
expression:是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。
start:是一个整数,指定子串的开始位置。
length:是一个整数,指定子串的长度(要返回的字符数或字节数)。
eg:select id from users id的值是001.002$
select substring(ID,charindex('.',ID)+1,(charindex('$',ID)-charindex('.',ID)-1)) as idx
‘玖’ sql怎么辨认字符串的开头是否在另一字段里
select * from a join b on a.字段 like b.字段+'%'
这样就行了