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

sql摘取固定字节

发布时间: 2023-03-11 00:11:38

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

1

评论

分享

举报

lovesmile35
来自电脑网络类芝麻团2017-01-13

也可以用 substr(column,1,n) 从第几位开始截 截几位
left(column,n)
right(column,n)
可以试试 都可以

㈡ sql 怎么取 字符串的前几位

sql中,使用LEFT函数即可取到字符串的前几位。

LEFT(c, number_of_char)用于返回某个被请求的文本域的左侧部分,其中c代表被请求的文本域,number_of_cha代表需要取出的字符串位数。如“LEFT("..com", 6)”即可取得字符串""。

(2)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 只取前20字节的数据怎么取

declare@testvarchar(50)
declare@needvarchar(50)
declare@numint
set@num=0
set@test='中中中中中中中中中中中中中'
while(@num<=len(@test))
begin
set@need=substring(@test,0,@num)
set@num=@num+1
if(datalength(@need)=20)
begin
print@need
break
end
end

㈣ SQL取字段中某一部分特定数值

如果只是固定取"20/30"比较容易, 只需找到"20/30"在此字符串的开始位置,再截取5个字符的长度就可以了,如:
SELECT CASE WHEN CHARINDEX('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg', '20/30') > 0 THEN SUBSTRING('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg', CHARINDEX('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg', '20/30'),5) ELSE '' END

如果不一定是20/30,而是与"/"前后关联的数字(eg: 14/20, 33/66,等...),就麻烦了,你可能需要写一个抽取字符串的函数,如: f_substr(),然后在SQL里调用:
select 用户.f_substr('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg')

㈤ SQL 怎样截取指定位置的中英文混合体 例如 截取‘我是中国人0001’ 的8 至 14字节

create table #temp( test varchar(20) );
INSERT INTO #temp VALUES('我是中国人0001');
go
SELECT
Convert(char(8), test) AS [0to8],
Convert(char(14), test) AS [0to14],
RIGHT(Convert(char(14), test), LEN(Convert(char(14), test)) - LEN(Convert(char(8), test))) AS [8to14]
FROM
#temp
GO
0to8 0to14 8to14
-------- -------------- --------------
我是中国 我是中国人0001 人0001
(1 行受影响)



SQL Server 下面, 可以这么写。