Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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
从SQL字符串中删除字符(搜索)_Sql_Search_Replace - Fatal编程技术网

从SQL字符串中删除字符(搜索)

从SQL字符串中删除字符(搜索),sql,search,replace,Sql,Search,Replace,今天应该很简单。我有一列合同清单: 正如您所看到的,有些合同的末尾有一个“-…”。我需要删除这个字符和后面的任何字符(请参阅所需的输出)。不幸的是,它不仅仅是一个字符(可能是多个/不同的字符)。所以我想它将是一个右/右/搜索组合 想法?您可以使用patindex确认是否存在两条破折号。使用doublecharindex,然后可以返回第二个破折号之前的字符串部分: select case when patindex('%-%-%', col1) > 0 then

今天应该很简单。我有一列合同清单:

正如您所看到的,有些合同的末尾有一个“-…”。我需要删除这个字符和后面的任何字符(请参阅所需的输出)。不幸的是,它不仅仅是一个字符(可能是多个/不同的字符)。所以我想它将是一个右/右/搜索组合


想法?

您可以使用
patindex
确认是否存在两条破折号。使用double
charindex
,然后可以返回第二个破折号之前的字符串部分:

select  case 
        when patindex('%-%-%', col1) > 0 then
            left(col1, charindex('-', col1, charindex('-', col1) + 1) - 1)
        else col1
        end as col1
from    dbo.YourTable

如果所有合同都具有相同的格式,则以下几乎是执行所需操作的标准SQL:

select (case when CTNumber like '%-%-%'
             then left(CTNumber, 7)
             else CTNumber
        end) as DesiredOutput
from t

like
语法是标准的,
case
是标准的,大多数数据库都有
left()
函数。这确实假设CTNumber的形式是这样的:您总是想要前七个字符。

您总是想要左七个字符吗?这个问题没有显示任何研究成果。做家庭作业很重要。告诉我们你发现了什么,为什么它不能满足你的需要。这表明你花了时间来帮助自己,这使我们不必重复显而易见的答案,而且最重要的是,这有助于你得到更具体、更相关的答案。“期望输出”是SQL列吗?您是只使用SQL还是与java、c#等中的应用程序一起使用?您使用的是哪种DBMS?博士后?甲骨文?除了FreshPrince还有其他人想做建设性的吗?我使用的是SQL,字符限制会改变,但总有…-。。。。我尝试使用Left(A.ContractNumber、charindex('-',A.ContractNumber、charindex('-',A.ContractNumber)+1)-1),但始终出现以下错误“传递给Left或SUBSTRING函数的长度参数无效”