Sql 如何使用最后一个字母数字键作为参考修剪数据
需要你的帮助,在下面的数据修剪或什么,所以曾经得到的结果,也显示在下面。我想获取引用为最后一个Sql 如何使用最后一个字母数字键作为参考修剪数据,sql,sql-server,Sql,Sql Server,需要你的帮助,在下面的数据修剪或什么,所以曾经得到的结果,也显示在下面。我想获取引用为最后一个-符号的数据 见下面的例子 FROM TO +-------------------------------+ |ABC-1234-AR-R | ABC-1234-AR | |ABC-1254-AR-IT | ABC-1254-AR | |ABC-1223-AR-LTL| ABC-1223-AR | |ABC-1234-R
-
符号的数据
见下面的例子
FROM TO
+-------------------------------+
|ABC-1234-AR-R | ABC-1234-AR |
|ABC-1254-AR-IT | ABC-1254-AR |
|ABC-1223-AR-LTL| ABC-1223-AR |
|ABC-1234-R | ABC-1234 |
+-------------------------------+
这将为您提供上次出现连字符的索引:
LEN(data) - CHARINDEX('-', REVERSE(data)) + 1
所以取这个长度的子字符串就足够了:
SELECT
data,
SUBSTRING(data, 1, LEN(data) - CHARINDEX('-', REVERSE(data))) AS data_trimmed
FROM yourTable;
这将为您提供上次出现连字符的索引:
LEN(data) - CHARINDEX('-', REVERSE(data)) + 1
所以取这个长度的子字符串就足够了:
SELECT
data,
SUBSTRING(data, 1, LEN(data) - CHARINDEX('-', REVERSE(data))) AS data_trimmed
FROM yourTable;
您还可以将
左
和
功能组合使用
查询
select [from],
left([from], len([from]) - charindex('-', reverse([from]), 1)) as [to]
from [your_table_name];
您还可以将
左
和CHARINDEX
功能组合使用
查询
select [from],
left([from], len([from]) - charindex('-', reverse([from]), 1)) as [to]
from [your_table_name];
第四条记录没有被删减,而是添加了内容。也许可以更新您的问题,并告诉我们您打算更新的逻辑。这背后的逻辑是根据最后一个“-”符号修剪数据“-”符号后面的任何字符串或字符都将被修剪。如果第四条记录没有被修剪,则会向其中添加内容。也许可以更新您的问题,并告诉我们您打算更新的逻辑。这背后的逻辑是根据最后一个“-”符号修剪数据“-”符号后面的任何字符串或字符都将被删除trimmed@JackyMontevirgen你说得对,我误以为是逗号而不是连字符。回答正确。@TimBiegeleisen干杯!知道了!现在我知道了背后的逻辑,我需要反转字符串的起始位置!回答接受@TimBiegeleisen非常感谢你。我经常在
CHARINDEX
:)@jackymontevigen中弄乱参数你是对的,我错误地认为逗号而不是连字符。回答正确。@TimBiegeleisen干杯!知道了!现在我知道了背后的逻辑,我需要反转字符串的起始位置!回答接受@TimBiegeleisen非常感谢你。我经常在CHARINDEX
:)中弄乱参数