如何用SQL语句得到第一个'-'和第二个'-'这间的值?如:100-825-4565-7878。我只想要825。谢大家。

lbsoftware 2003-11-11 09:40:05
但825不一定从第四个开始,不过一定是在两个-之间。上面的字符串是一个字断的值,但我想要其中的825。谢谢大家!
...全文
91 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cloudchen 2003-11-11
  • 打赏
  • 举报
回复
declare @str varchar(100),@find varchar(100),@firstPosition int,@secondPosition int
set @str = '100-825123123123-4565-7878'
set @find = '-'
set @firstPosition = charindex(@find,@str)+1
set @secondPosition = charindex(@find,@str,@firstPosition)
select substring(@str,@firstPosition,@secondPosition-@firstPosition)
wenhao676 2003-11-11
  • 打赏
  • 举报
回复
create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(a varchar(100))
--实现split功能 的函数
--date :2003-10-14
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>''
insert @temp values(@SourceSql)
return
end

用这个函数,随便你取那个
carolbaby 2003-11-11
  • 打赏
  • 举报
回复
declare @index1 int;

select @index1 = charindex('-','100-825-4565-7878')+1

select substring('100-825-4565-7878',@index1,charindex('-','100-825-4565-7878',@index1) - @index1)

不过不够简洁
lbsoftware 2003-11-11
  • 打赏
  • 举报
回复
那个825不一定长为3,也可能是56456456
pengdali 2003-11-11
  • 打赏
  • 举报
回复
select substring('100-825-4565-7878',charindex('-','100-825-4565-7878')+1,3)
day_dayup 2003-11-11
  • 打赏
  • 举报
回复
declare @number varchar(50)
declare @number2 varchar(50)
declare @lenth int
set @number='12156765-15545-54515'
set @lenth=charindex('-',@number)-1
set @number2=substring(@number,@lenth+2,len(@number))
select substring(@number2,1,(charindex('-',@number2)-1))
erickleung 2003-11-11
  • 打赏
  • 举报
回复
为何不在输入数据之时, 先按组别输入到不同的字段, 又假如字段为电话编号, 又容许用户使用不同格式输入, 一些有3个'-'一此有空白符, 一此只有一个'-'. 这样的sql的执行速度之快可想而知.
内容概要:本文系统阐述了Rust语言在系统编程方向的四大核心项目实践——简易操作系统内核、网络代理服务器、自定义内存分配器与并发数据结构,详细说明各项目的目标设定、关键技术实现、核心设计要点及工程优化建议。项目均依托Rust的内存安全、零成本抽象、并发安全等特性,在无标准库(no_std)或高并发场景下构建安全高效的系统组件,并强调跨平台适配、unsafe代码管控、性能调优与可扩展架构设计。此外,文章指出四大项目间的内在技术协同关系,如内存分配器支撑内核与并发结构,并发结构赋能代理服务器性能优化,并前瞻性提出可将部分模块编译为WebAssembly,拓展至浏览器、边缘计算等跨平台应用场景。 适合人群:具备Rust基础语法与系统编程概念,有一定项目实践经验的中级开发者(工作1-3年),尤其是关注操作系统、高性能服务、内存管理与并发编程的技术人员。 使用场景及目标:①掌握Rust在裸机环境下的操作系统开发全流程;②构建高并发、低延迟的网络代理服务;③实现高性能、可定制的内存分配器以替代标准库默认分配器;④设计线程安全、无锁或细粒度锁的并发数据结构;⑤探索Rust + WebAssembly在跨平台系统级应用中的融合路径。 阅读建议:建议结合实际编码逐步实现各项目模块,重视unsafe使用的边界控制与并发安全验证,使用QEMU、gdb、tracing等工具辅助调试,并通过benchmark对比性能优化效果,深入理解Rust系统编程的本质与工程落地方法。

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧