① sql 查询字段中的前几个字
可以使用:substr( string, start_position, [ length ] );string:源字符串;start_position:提取的位置,字符串中第一个位置始终为1;[ length ]:提取的字符数,如果省略,substr将返回整个字符串;
针对本例举例说明:
select * from 表名wheresubstr([D],1,2)=“10”
语句功能说明:从指定表中查询D字段第1、2个字符为“10的记录”。

(1)sql取字符前几位扩展阅读:
注意事项
语法:substr(string,start,length)
string参数:必选。数据库中需要截取的字段。
start参数:必选。
正数,从字符串指定位子开始截取;负数,从字符串结尾指定位子开始截取;0,在字符串中第一个位子开始截取。1,同理。(特殊)
length参数:可选。需要截取的长度。缺省,即截取到结束位置。
注意:若必选参数为空,那返回的结果也为空。
② sql 怎么截取字符串前几个字符
用 substr(column,1,n)  从第几位开始截 截几位
left(column,n) 
right(column,n)
③ sql 取字符前几位
left(字符串,要取的字符数)
从左边第一个起取字符串的N个字符
楼上正解
④ 在SQL语句中如何用正则取出一个字符串的前几位数字
- SQL 取字符串的前几位数字,SQL 关键字 substring 
- substring 使用方法,参考下列SQL: 
- declare @T nvarchar(10) 
- set @T='12345abcde' 
- select substring(@T,1,5) 
- 结果如下:12345 
- 如果是SQL 写正则表达式判断,只能通过存储过程或函数来处理 
- SQL 如下: 
- CREATE FUNCTION dbo.find_regular_expression 
 (
 @source varchar(5000), --需要匹配的源字符串
 @regexp varchar(1000),--正则表达式
 @ignorecase bit = 0--是否区分大小写,默认为false
 )
 RETURNS bit--返回结果0-false,1-true
 AS
 BEGIN
 --0(成功)或非零数字(失败),是由 OLE 自动化对象返回的 HRESULT 的整数值。
 DECLARE @hr integer
 --用于保存返回的对象令牌,以便之后对该对象进行操作
 DECLARE @objRegExp integer DECLARE @objMatches integer
 --保存结果
 DECLARE @results bit
 /*
 创建 OLE 对象实例,只有 sysadmin 固定服务器角色的成员才能执行 sp_OACreate,- 并确定机器中有VBScript.RegExp类库 
 */
 EXEC @hr = sp_OACreate 'VBScript.RegExp', @objRegExp OUTPUT
 IF @hr <> 0 BEGIN
 SET @results = 0
 RETURN @results
 END
 /*
 以下三个分别是设置新建对象的三个属性。下面是'VBScript.RegExp'中常用的属性举例:
 Dim regEx,Match,Matches '建立变量。
 Set regEx = New RegExp '建立一般表达式。
 regEx.Pattern= patrn '设置模式。
 regEx.IgnoreCase = True '设置是否区分大小写。
 regEx.Global=True '设置全局可用性。
 set Matches=regEx.Execute(string) '重复匹配集合
 RegExpTest = regEx.Execute(strng) '执行搜索。
 for each match in matches '重复匹配集合
 RetStr=RetStr &"Match found at position "
 RetStr=RetStr&Match.FirstIndex&".Match Value is '"
 RetStr=RetStr&Match.Value&"'."&vbCRLF Next
 RegExpTest=RetStr
 */
 EXEC @hr = sp_OASetProperty @objRegExp, 'Pattern', @regexp
 IF @hr <> 0 BEGIN
 SET @results = 0
 RETURN @results
 END
 EXEC @hr = sp_OASetProperty @objRegExp, 'Global', false
 IF @hr <> 0 BEGIN
 SET @results = 0
 RETURN @results
 END
 EXEC @hr = sp_OASetProperty @objRegExp, 'IgnoreCase', @ignorecase
 IF @hr <> 0 BEGIN
 SET @results = 0
 RETURN @results
 END
 --调用对象方法
 EXEC @hr = sp_OAMethod @objRegExp, 'Test', @results OUTPUT, @source
 IF @hr <> 0 BEGIN
 SET @results = 0
 RETURN @results
 END
 --释放已创建的 OLE 对象
 EXEC @hr = sp_OADestroy @objRegExp
 IF @hr <> 0 BEGIN
 SET @results = 0
 RETURN @results
 END
 RETURN @results
 END
⑤ sql中截取指定字符的前几位
select substring(ID,charindex('.',ID)+1,(charindex('$',ID)-charindex('.',ID)-1)) as idx
⑥ sql取特定字符的前面几位字符
MSSQL的就用这个吧,直接可以查询出来
SELECT LEFT(MB002,PATINDEX('%-%',STUFF(MB002,PATINDEX('%-%',MB002),1,'*'))-1) FROM 表名
⑦ oracle sql 取字段前几位
substr('Hello World',0,1) //返回结果为 'H' ,从字符串第一个字符开始截取长度为1的字符串。另外还有以下建议:
- select * from table where substr('字段a',2,3)='abc'。 
- substr(字段, 起始位, 长度)。 
- sample只对单表生效,不能用于表连接和远程表。 
- sample会使SQL自动使用CBO。 
⑧ sql中如何在where字句里截取某个字段的前几位字符
sql中在where字句里截取字符方法如下:
1、如果是sqlserver:where left(p.end_time,4) = '2012'。
2、如果是Oracle:where substr(p.end_time,0,4) = '2012'。
举例:
1、oracle: 'where substr(字段名,1,2)='''123''''
2、sqlserver: 'where substring(字段名,1,2)='''123''''

(8)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怎么取字符串的前几位
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
⑩ oracle sql 取字段前几位
substr('Hello World',0,1) //返回结果为 'H' ,从字符串第一个字符开始截取长度为1的字符串。另外还有以下建议:
- select * from table where substr('字段a',2,3)='abc'。 
- substr(字段, 起始位, 长度)。 
- sample只对单表生效,不能用于表连接和远程表。 
- sample会使SQL自动使用CBO。 
