为了账号安全,请及时绑定邮箱和手机立即绑定

关于在SQL中SUBSTRING的用法的问题,求大佬们帮忙分析分析!

关于在SQL中SUBSTRING的用法的问题,求大佬们帮忙分析分析!

喵喵时光机 2021-10-12 17:10:30
1/ 最好是把用法都用例子列列.2/ SUBSTRING('1234567890QWER',7,8) 请问这个的结果是什么?它和substr有什么区别吗
查看完整描述

3 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

1、SUBSTRING
返回字符、binary、text 或 image 表达式的一部分。有关可与该函数一起使用的有效 Microsoft® SQL Server™ 数据类型的更多信息,请参见数据类型。

语法
SUBSTRING ( expression , start , length )

参数
expression

是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。

start

是一个整数,指定子串的开始位置。

length

是一个整数,指定子串的长度(要返回的字符数或字节数)。

说明 由于在 text 数据上使用 SUBSTRING 时 start 和 length 指定字节数,因此 DBCS 数据(如日本汉字)可能导致在结果的开始或结束位置拆分字符。此行为与 READTEXT 处理 DBCS 的方式一致。然而,由于偶而会出现奇怪的结果,建议对 DBCS 字符使用 ntext 而非 text。

返回类型
如果 expression 是支持的字符数据类型,则返回字符数据。如果 expression 是支持的 binary 数据类型,则返回二进制数据。

返回字符串的类型与给定表达式的类型相同(表中显示的除外)。

给定的表达式 返回类型
text varchar
image varbinary
ntext nvarchar
2、7890QWER



查看完整回答
反对 回复 2021-10-16
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

SUBSTRING('1234567890QWER',7,8)
你的写法就错了。
SUBSTRING('列名',7(截断起始位),8(显示长度))
返还的结果是890QWER---这里你给的''我没记位数。

查看完整回答
反对 回复 2021-10-16
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

问题1:7890QWER
这是结果。
问题2:我用的sql server2000,没见过substr,估计是缩写,应该没有区别

查看完整回答
反对 回复 2021-10-16
  • 3 回答
  • 0 关注
  • 273 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信