TSQL-删除最后一个周期后的所有内容
我有一个列字符串,它可能是以下内容之一TSQL-删除最后一个周期后的所有内容,sql,sql-server,string,substring,Sql,Sql Server,String,Substring,我有一个列字符串,它可能是以下内容之一 10.0.2531.0 10.50.2500 10.0.2531.60 我的要求是,如果有3个句点/小数点,请删除最后一个句点/小数点以及之后的所有内容 如果我使用以下命令,这将处理只有“.0”的第一行,但是,它不适用于第三行 select case when right(column_1,2) = '.0' then left(column_1,len(column_1)-2) else column_1 end,
10.0.2531.0
10.50.2500
10.0.2531.60
我的要求是,如果有3个句点/小数点,请删除最后一个句点/小数点以及之后的所有内容
如果我使用以下命令,这将处理只有“.0”的第一行,但是,它不适用于第三行
select
case
when right(column_1,2) = '.0' then left(column_1,len(column_1)-2)
else column_1 end,
FROM
table_1
我也尝试了以下方法,但没有成功
select
case
when right(column_1,2) = '.' then left(column_1,len(column_1)-2)
when right(column_1,3) = '.' then left(column_1,len(column_1)-3)
else column_1 end,
FROM
table_1
第三个句号/小数点后的数字可以是0或其他数字。使用
charindex
和子字符串的组合
使用charindex
和substring
的组合
在假设不存在五个周期的情况下,进行以下工作:
select (case when ip like '%.%.%.%'
then left(ip, len(ip) - charindex('.', reverse(ip))
else ip
end) as firstThree
在假设不存在五个周期的情况下,进行以下工作:
select (case when ip like '%.%.%.%'
then left(ip, len(ip) - charindex('.', reverse(ip))
else ip
end) as firstThree
SQL Server具有LEN
功能;)@LAD205。谢谢我坐在这里,在另一个窗口中处理Oracle。SQL Server具有LEN
功能;)@LAD205。谢谢我坐在这里和另一个窗口里的甲骨文打交道。