我有一个列字符串,可能是以下之一。
data
我的要求是,如果有3个句点/小数点,则删除最后一个句点/小数以及之后的所有内容。
如果我使用以下内容,这将处理仅存在“.0”的第一行,但是,它不适用于第三行。
10.0.2531.0
10.50.2500
10.0.2531.60
我也尝试了以下但是没有用。
select
case
when right(column_1,2) = '.0' then left(column_1,len(column_1)-2)
else column_1 end,
FROM
table_1
第三个句点/小数后的数字可以是0或其他数字。
答案 0 :(得分:3)
以下工作,假设从未有五个时期:
select (case when ip like '%.%.%.%'
then left(ip, len(ip) - charindex('.', reverse(ip))
else ip
end) as firstThree
答案 1 :(得分:2)
使用charindex
和substring
的组合。
select reverse(substring(reverse(column_1), charindex('.',reverse(column_1))+1, len(column_1)))
from table_1
where len(column_1) - len(replace(column_1,'.','')) = 3