我的数据库中有以下条目:
E01234-1-1
E01234444-1-800000000
我想修剪条目,所以我得到:
E01234-1
E01234444-1
所以基本上,我想要第二个’-‘之前的所有内容,无论长度如何
我该如何解决?我正在使用 MS SQL SERVER 2012
我正在使用它,但它只带来第一个连字符之前的数据,而不是第二个连字符
DECLARE @TABLE TABLE (STRING VARCHAR(100))
INSERT INTO @TABLE (STRING)
SELECT 'E01234-1-1'
UNION ALL SELECT 'E01234-1-200'
UNION ALL SELECT 'E01234-1-3000'
UNION ALL SELECT 'E01234-1-40000'
UNION ALL SELECT 'E01234-1-500000'
UNION ALL SELECT 'E01234-1-6000000'
UNION ALL SELECT 'E01234-1-70000000'
UNION ALL SELECT 'E01234444-1-800000000'
SELECT LEFT(STRING, CHARINDEX('-',STRING)-1) STRIPPED_STRING from @TABLE
E01234
E01234
E01234
E01234
E01234
E01234
E01234
E01234444
原文由 thirty 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您需要第二个
-
:说明:
CHARINDEX
将为您提供-
的索引 - 执行两次(+ 1)指定CHARINDEX
应该在第一个之后的位置开始-
在字符串中。如果你想在最后一个
-
之后砍掉所有东西(不管它是否是第二个):这一次,你得到最后一个(反转字符串)的
CHARINDEX
-
,然后从整个字符串的长度中减去它。