如何删除SQL中某些字符后的所有内容?

时间:2014-03-21 12:11:22

标签: removeall

我有一个400行+的列表。每一行看起来都与此类似:example-example123我想删除过去的所有内容' - '所以我只留下了开头部分:example123 任何帮助将不胜感激。

6 个答案:

答案 0 :(得分:2)

尝试这样:

UPDATE table SET column_name=LEFT(column_name, INSTR(column_name, '-')-1) 
WHERE INSTR(column_name, '-')>0;

如果您只想选择这样做:

SELECT LEFT(column_name, INSTR(column_name, '-')-1) FROM table;

INSTR函数会让您获得-的位置,然后将列值更新为从字符串的第一个字母到- -1

这是fiddle

答案 1 :(得分:2)

您可以使用SQL Trim()函数

SELECT TRIM(TRAILING' - '来自BHEXLIVESQLVS1-LIVE61MSSQL)
作为TRAILING_TRIM
FROM table;

结果应为“BHEXLIVESQLVS1”

答案 2 :(得分:1)

假设您需要在查询中执行此操作,则可以使用数据库的字符串函数。 对于DB2,这看起来像

select SUBSTR(YOURCOLUMN, 1, LOCATE('-',YOURCOLUMN)) from YOURTABLE where ...

在SQL Server中,您可以使用

SUBSTRING

CHARINDEX

答案 3 :(得分:1)

select SUBSTRING(col_name,0,Charindex ('-',col_name))

答案 4 :(得分:1)

<块引用>

SELECT SUBSTRING(col_name,0,Charindex ('-',col_name)) FROM table_name WHERE col_name='yourvalue'

例如

SELECT SUBSTRING(TPBS_Path,0,Charindex ('->',TPBS_Path)) FROM [CFG].[CFG_T_Project_Breakdown_Structure] WHERE TPBS_Parent_PBS_Code='LE180404'

这里 TPBS_Path 是要进行修剪的列,[CFG].[CFG_T_Project_Breakdown_Structure] 是表名,TPBS_Parent_PBS_Code='LE180404' 是选择条件。 '->' 之后的所有内容都将被修剪

答案 5 :(得分:0)

对于SQL Server,您可以执行此操作

LEFT(columnName, charindex('-', columnName))删除'-'之后的每个字符

也要删除特殊字符,

LEFT(columnName, charindex('-', columnName)-1)
相关问题