Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TSQL-删除最后一个周期后的所有内容_Sql_Sql Server_String_Substring - Fatal编程技术网

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。谢谢我坐在这里和另一个窗口里的甲骨文打交道。