sql语句只要数字

数据库中有个数据是0.5g
而用这SQL语句查
select CHID,CassiaTwig=CAST(SUBSTRING(ltrim(CassiaTwig),1,PATINDEX('%[^0-9]%',ltrim(CassiaTwig))-1) as float) from Case_history where CassiaTwig !=''
结果是0
求大神指导怎么修改语句能让结果为0.5
最新回答
他说那很美い

2021-09-09 16:13:21

正则表达式写错了啊,PATINDEX不支持正则表达式的,应该说sql server 不支持正则表达式,
所以最后你截取的字符只是 '' ,然后将'' 转换成float, select cast('' as float) 结果就自然是0了
我不清楚你的数据有什么特点,只是去掉后面的g么? 用left函数就好了
left(CassiaTwig,len(CassiaTwig)-1)
;單人旁┍

2021-06-24 14:11:17

1
2
这样可以吗?
SELECT REPLACE('0.5g','g','')