当前位置:首页 » 编程语言 » sql取字符前几位
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql取字符前几位

发布时间: 2022-03-08 09:47:02

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语句中如何用正则取出一个字符串的前几位数字

  1. SQL 取字符串的前几位数字,SQL 关键字 substring

  2. substring 使用方法,参考下列SQL:

  3. declare @T nvarchar(10)

  4. set @T='12345abcde'

  5. select substring(@T,1,5)

  6. 结果如下:12345

  7. 如果是SQL 写正则表达式判断,只能通过存储过程或函数来处理

  8. SQL 如下:

  9. 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的字符串。另外还有以下建议:

  1. select * from table where substr('字段a',2,3)='abc'。

  2. substr(字段, 起始位, 长度)。

  3. sample只对单表生效,不能用于表连接和远程表。

  4. 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的字符串。另外还有以下建议:

  1. select * from table where substr('字段a',2,3)='abc'。

  2. substr(字段, 起始位, 长度)。

  3. sample只对单表生效,不能用于表连接和远程表。

  4. sample会使SQL自动使用CBO。