使用SQL Server子字符串进行数据操作

时间:2018-06-25 00:44:04

标签: sql-server substring

我有一个这样的表A:

ID   Col1
----------------------
1    xyz-abcccc
2    xyz-jkasdasd
3    abcds-asks
4    asdasdasda-as

我想要这样的输出:

    ID   Col1
    -------------
    1    abcccc
    2    jkasdasd
    3    asks
    4    as

我想输出忽略短划线-之前的任何内容。

谢谢

2 个答案:

答案 0 :(得分:2)

charindex()将是一个不错的起点。唯一的技巧是在dash函数中添加charindex作为故障保护,从而避免引发错误。

示例

Select ID
      ,Col1 = substring(Col1,charindex('-',col1+'-')+1,len(Col1))
 from YourTable

返回

ID  Col1
1   abcccc
2   jkasdasd
3   asks
4   as

答案 1 :(得分:0)

您也可以结合使用RIGHTCHARINDEX函数。

查询

select [ID],
case when [Col1] like '%-%' then right([Col1], charindex('-', reverse([Col1]), 1) - 1)
else [Col1] end as [new_col1]
from [your_table_name];