gpt4 book ai didi

sql-server - 如何在 SQL 中删除此字符串中的额外占位符?

转载 作者:行者123 更新时间:2023-12-04 22:26:41 25 4
gpt4 key购买 nike

我有一列字符串,如下所示。

1991-001
1991-030
1994-003

并希望通过删除占位符 0 来输出这些字符串
1991-1
1991-30
1994-3

我将如何为 SQL Server 中的每一行动态地执行此操作?

最佳答案

如果模式不是 4-3,则一种选择是使用 PARSENAME() 和 CONCAT()

示例

Declare @YourTable Table ([SomeCol] varchar(50))
Insert Into @YourTable Values
('1991-001')
,('1991-030')
,('1994-003')

Select *
,NewValue = concat(
try_convert(int,parsename(replace(SomeCol,'-','.'),2))
,'-'
,try_convert(int,parsename(replace(SomeCol,'-','.'),1))
)
From @YourTable A

如果模式是 4-3... left()/right()
Select *
,NewValue = concat(
try_convert(int,left(SomeCol,4))
,'-'
,try_convert(int,right(SomeCol,3))
)
From @YourTable A

两者都会返回
SomeCol     NewValue
1991-001 1991-1
1991-030 1991-30
1994-003 1994-3

最后一个选项,只是为了好玩...使用几个 replace()
Select *
,NewValue = replace(replace(SomeCol,'-0','-'),'-0','-')
From @YourTable A

关于sql-server - 如何在 SQL 中删除此字符串中的额外占位符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60058728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com