2017-05-26 49 views
-1

我已经在表格中的列如FurnaceRunno(GM15-737)。所以,我想在FurnaceRunno中做一个减号。如何在字符串中执行sql

输出应该来是这样的:(减去一个值,固定每furnacerunno)

FurnaceRunno :GM15-737  
output  :GM15-736 
+0

提示..用0替换“ - ”,然后排除“GM”,然后-1然后附加“GM”回 – maSTAShuFu

回答

1
select SUBSTRING(FurnaceRunno, 0, charindex('-', FurnaceRunno, 1)) + '-' 
+ CONVERT(varchar(50), CONVERT(INT, SUBSTRING(FurnaceRunno, charindex('-', FurnaceRunno, 1) + 1, len(FurnaceRunno))) - 1) 
FROM mytable 
+0

将nvarchar值'1A'转换为数据类型int时转换失败。 –

+0

那么''''后面还有非数字数据? – artm

+0

现在,完美的工作谢谢你 –

1

试试这个

declare @mytext varchar(10) = 'GM15-736' 
declare @prefix varchar(2) = left(@mytext,2) 

select @prefix + cast(replace(replace(@mytext,'-','0'),@prefix,'') + 1 as varchar(10)) 
1

尝试这些疑问 -

-- Query 1: 
DECLARE @Result INT 
SET @Result = CAST(RIGHT('GM15-737', 3) AS INT) - 1 
SELECT REPLACE('GM15-737', SUBSTRING('GM15-737', 6, 3), CAST(@Result AS 
VARCHAR)) 

-- Query 2: 
DECLARE @Result1 INT, @OutputString VARCHAR(255) 

SET @Result1 = CAST(SUBSTRING(REPLACE('GM15-737', '-', ''), 3, 5) AS INT) - 1 
SET @OutputString = CONCAT('GM', CAST(@Result1 AS VARCHAR(255))) 
SET @OutputString = STUFF(CAST(@OutputString AS VARCHAR(255)), 5, 0, '-') 
PRINT @OutputString 

不要忘记标记为答案请如果它帮助你解决你的答案。 :)