这句sql中的len是什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/16 03:31:09
A表ABC字段的ID号是123456|789
想用SQL语句取出789后,与B表的EFG字段(EFG=789)关联,从而查找出两个表里的记录

select * from A,B
Where substring(A.ABC,len(A.ABC)-2,3)=B.EFG

不太明白len(A.ABC)-2是什么意思?

len()是一个函数,用来计算某个字段的长度,
len(A.ABC)-2的意思就是A.ABC这个字段值的长度再减去2

在SQL中len为获取文本字段中值的长度的函数。

SQL LEN() 语法

SELECT LEN(column_name) FROM table_name

意思就是abc这个字段的长度-2,也就是,substring函数是用来截取的,然后取三位
你写的123456|789 应该是10位,所以就是从第8位开始取,取三位长度,取出的就是789

--取A.ABC列的最后三个字符=B.EFG列
select * from A,B
Where substring(A.ABC,len(A.ABC)-2,3)=B.EFG

换一下写法楼主看能不能理解

select * from A,B
Where right(A.ABC,3)=B.EFG



select * from A,B
Where A.ABC like '%'+rtrim(B.EFG)

LEN ( string_expression )参数:要计算的字符串
返回指定字符串表达式的字符数,其中不包含尾随空格。