sqlserver怎么把\"1:10\"分号前后的数据提起出来,也会出现单数的情况

/

FineReport Ccc 发布于 2024-5-11 10:06
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
用户k6280494Lv6专家互助
发布于2024-5-11 10:08(编辑于 2024-5-11 10:09)

a1放原始字段

if(find(":",a1)>0,INDEXOFARRAY(SPLIT(a1,":"),1),a1) b1

if(find(":",a1)>0,INDEXOFARRAY(SPLIT(a1,":"),2),a1) c1

最佳回答
0
华莉星宸Lv7资深互助
发布于2024-5-11 10:07

你是要写SQL还是在报表上处理?

  • Ccc Ccc(提问者) SQL上
    2024-05-11 10:09 
  • 华莉星宸 华莉星宸 回复 Ccc(提问者) SQL上直接字符串截取就行了,主要是找到:位置即可,CHARINDEX查找位置
    2024-05-11 10:12 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2024-5-11 10:10

with t as(

select '1:20' a

)

select *,(CASE WHEN CHARINDEX(':',A)>0 THEN SUBSTRING(A,1,CHARINDEX(':',A)-1) ELSE A END) [A1],(CASE WHEN CHARINDEX(':',A)<=0 THEN null ELSE SUBSTRING(A,CHARINDEX(':',A)+1,LEN(A)) END) [A2] from t

image.png

  • 3关注人数
  • 157浏览人数
  • 最后回答于:2024-5-11 10:10
    请选择关闭问题的原因
    确定 取消
    返回顶部