Ⅰ sql server中,查询以a字母开头且长度至少为3个字符的值,有些疑问
% 替代一个或多个字符,可以空,例如'a%'可以匹配'a'
_ 仅替代一个字符,'a_'不包括'a'
a开头至少3个字符,应该是'a__%'.
'a_%_%'和'a_ _%'区别是前者中间可以多匹配一个或多个字符,这种写法没有意义;相当于'a%_%_%'之类,加再多也是一样(因为%%包含_,仅用于表示至少一个字符)
Ⅱ SQL语句如何判断某字段是以字母开头而不是汉
substring 函数返回第一个参数中从第二个参数指定的位置开始、第三个参数指定的长度的子字符串
select distinct tlid,题目内容 from 表 where substring(tlid,1,1)=substring('S01',1,1)
至于substring('S01',1,1)里面的S01可以根据你所用的语言来获得
Ⅲ 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中取字符的首字符怎么写
比如字符‘s13dd’ 取第一个就是
select left('s13dd') 或者 select substring('s13dd').
Ⅳ 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 总 期
Ⅵ 如何在mysql中查询以某个字符开头的表 如何在mysql中查询以某个字符开头的表
MYSQL没有类似于MSSQLSERVER的sysobjects或者Oracle的dba_tab_comments这样的表,但MYSQL可以用SHOW命令查询数据库和表、字段、索引等信息:
一些SHOW语句提供额外的字符集信息。这些语句包括SHOW CHARACTER SET、SHOW COLLATION、SHOW CREATE DATABASE、SHOW CREATE TABLE和SHOW COLUMNS。
SHOW CHARACTER SET命令显示全部可用的字符集。它带有一个可选的LIKE子句来指示匹配哪些字符集名。例如:
mysql> SHOW CHARACTER SET LIKE 'latin%';
+---------+-----------------------------+-------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+-----------------------------+-------------------+--------+
| latin1 | cp1252 West European | latin1_swedish_ci | 1 |
| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |
| latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 |
| latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 |
+---------+-----------------------------+-------------------+--------+
见13.5.4.1节,“SHOW CHARACTER SET语法”。
SHOW COLLATION语句的输出包括全部可用的字符集。它带有一个可选的LIKE子句来指示匹配哪些 校对规则名。例如:
mysql> SHOW COLLATION LIKE 'latin1%';
+-------------------+---------+----+---------+----------+---------+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+-------------------+---------+----+---------+----------+---------+
| latin1_german1_ci | latin1 | 5 | | | 0 |
| latin1_swedish_ci | latin1 | 8 | Yes | Yes | 0 |
| latin1_danish_ci | latin1 | 15 | | | 0 |
| latin1_german2_ci | latin1 | 31 | | Yes | 2 |
| latin1_bin | latin1 | 47 | | Yes | 0 |
| latin1_general_ci | latin1 | 48 | | | 0 |
| latin1_general_cs | latin1 | 49 | | | 0 |
| latin1_spanish_ci | latin1 | 94 | | | 0 |
+-------------------+---------+----+---------+----------+---------+
见13.5.4.2节,“SHOW COLLATION语法”。
SHOW CREATE DATABASE语句显示创建给定数据库的CREATE DATABASE语句。结果包括全部数据库选项。支持DEFAULT CHARACTER SET和COLLATE。全部数据库选项存储在命名为db.Opt的文本文件中,该文件能够在数据库目录中找到。
mysql> SHOW CREATE DATABASE test;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-----------------------------------------------------------------+
见13.5.4.4节,“SHOW CREATE DATABASE语法”
SHOW CREATE TABLE与SHOW CREATE DATABASE相似,但是显示创建给定数据库的CREATE TABLE语句。列定义显示任何字符集规格,并且表选项包括字符集信息。
见13.5.4.5节,“SHOW CREATE TABLE语法”
当以SHOW FULL COLUMNS调用时,SHOW COLUMNS语句显示表中列的校对规则。具有CHAR、VARCHAR或TEXT数据类型的列有非NULL的 校对规则。数值列和其它非字符类型的列有NULL校对规则。例如:
mysql> SHOW FULL COLUMNS FROM person\G
*************************** 1. row ***************************
Field: id
Type: smallint(5) unsigned
Collation: NULL
Null: NO
Key: PRI
Default: NULL
Extra: auto_increment
Privileges: select,insert,update,references
Comment:
*************************** 2. row ***************************
Field: name
Type: char(60)
Collation: latin1_swedish_ci
Null: NO
Key:
Default:
Extra:
Privileges: select,insert,update,references
Comment:
字符集不是显示的部分。(字符集名隐含在校对规则名中。)
Ⅶ sql中要查询以某个字符串开始的记录怎么做呢
where left(name,3)='abc'