1、先来看一下表结构和数据:


2、sql语句:取id和id2的前两位不相等的行,以及运行结果
SELECT * FROM test111 WHERE CAST(SUBSTR(id,1,2) AS UNSIGNED) <> CAST(SUBSTR(id2,1,2) AS UNSIGNED) ;

3、函数分析:
SUBSTR函数
substr( string, start_position, [ length ] ) substr('目标字符串',开始位置,长度)
如:
substr('This is a test', 6, 2) would return 'is'
substr('This is a test', 6) would return 'is a test'
substr('TechOnTheNet', -3, 3) would return 'Net'
substr('TechOnTheNet', -6, 3) would return 'The'select substr('Thisisatest', -4, 2) value from dual
注意:这里的开始位置是从1开始的,开始位置可以为负数,但不能为0。
CAST函数
cast跟convert的用法如下
用CAST函数或者CONVERT
CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name)
CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。
这个类型 可以是以下值其中的 一个:
BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]
注意:使用的int这个类型是错误的,需要使用SIGNED [INTEGER] 或者是UNSIGNED [INTEGER]都是可以的
本文介绍如何使用SQL的SUBSTR和CAST函数来筛选出表中两个字段前两位不同的记录。通过具体示例,展示了如何操作字符串并转换数据类型以进行比较。
1296

被折叠的 条评论
为什么被折叠?



