【发布时间】:2014-04-28 19:11:44
【问题描述】:
我有一个 400 行以上的列表。每行看起来都与此类似:example-example123 我想删除“-”之后的所有内容,这样我只剩下开始部分:example123 任何帮助将不胜感激。
【问题讨论】:
标签: removeall
我有一个 400 行以上的列表。每行看起来都与此类似:example-example123 我想删除“-”之后的所有内容,这样我只剩下开始部分:example123 任何帮助将不胜感激。
【问题讨论】:
标签: removeall
假设您需要在查询中执行此操作,您可以使用数据库的字符串函数。 对于 DB2,这看起来像
select SUBSTR(YOURCOLUMN, 1, LOCATE('-',YOURCOLUMN)) from YOURTABLE where ...
在 SQL Server 中你可以使用
SUBSTRING
和
CHARINDEX
【讨论】:
试试这样:
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
【讨论】:
你可以使用 SQL Trim() 函数
选择修剪(尾随'-'来自 BHEXLIVESQLVS1-LIVE61MSSQL)
作为 TRAILING_TRIM
FROM 表;
结果应该是“BHEXLIVESQLVS1”
【讨论】:
select SUBSTRING(col_name,0,Charindex ('-',col_name))
【讨论】:
对于 SQL server 你可以这样做,
LEFT(columnName, charindex('-', columnName)) 删除 '-' 之后的每个字符
要同时删除特殊字符,
LEFT(columnName, charindex('-', columnName)-1)
【讨论】:
SELECT SUBSTRING(col_name,0,Charindex ('-',col_name)) FROM table_name WHERE col_name='你的价值'
例如。
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' 是选择条件。 '->' 之后的所有内容都将被修剪
【讨论】: