sql 提取字段某位内容

来源:百度知道 编辑:UC知道 时间:2024/05/04 08:02:50
我想提取一个字段内某位上的数据,应该如何实现呢?
例如: 200800122445623
需要提取字段内 5-10位的内容 001224 应该如何实现

用substring(字段,1,4) 可以取到 2008
但substring(字段,5,10) 却取不到数据 这是为什么呢?

substring(字段,5,6)即可,最后一个参数的含义是提取字符的长度,而不是提取到多少位

substring(字段,5,10-5+1)
建议你看看sql的帮助。

语法
SUBSTRING ( value_expression ,start_expression , length_expression )

参数
字词
定义

value_expression
是 character、binary、text、ntext 或 image 表达式。

start_expression
指定返回字符的起始位置的整数或 bigint 表达式。如果 start_expression 小于 0,会生成错误并终止语句。如果 start_expression 大于值表达式中的字符数,将返回一个零长度的表达式。

length_expression
是正整数或指定要返回的 value_expression 的字符数的 bigint 表达式。如果 length_expression 是负数,会生成错误并终止语句。如果 start_expression 与 length_expression 的总和大于 value_expression 中的字符数,则返回整个值表达式。

5-10位应该是
select substring('200800122445623',5,6)
结果是001224

如果取不到数,先确认,字段类型,长度,是否空值

不行hi我

Select substring (字段,5,6) 可以提取字段内 5-10位的内容
但如果字段值长度本身不足5位,就取不到了