如何将字符串转换为整数?
DECLARE @string NVARCHAR(30)='1234-2345'
如何将@string转换为整数类型?
答案 0 :(得分:1)
您可以删除破折号并将结果转换为整数。 SELECT CAST(REPLACE('1234-2345','-','') as int)
答案 1 :(得分:1)
如果我理解你,你需要:
DECLARE @Result INT
DECLARE @string NVARCHAR(30)='1234-2345'
SELECT @Result = CONVERT(INT, REPLACE(@string, '-', ''))
SELECT @Result --Your desired result
如果您想要表达式的结果:
DECLARE @Result INT
DECLARE @string NVARCHAR(30)='1234-2345'
SELECT @Result = CAST(LEFT(@string, CHARINDEX('-', @string) - 1) AS INT) -
CAST(RIGHT(@string, CHARINDEX('-', @string) - 1) AS INT)
SELECT @Result --Your desired result
答案 2 :(得分:1)
如果你的意思是1234 减去 2345,那么
SELECT CAST((1234-2345) AS INT)
SELECT CAST((@string) AS INT)
如果意味着删除-
符号,那么
SELECT CAST(REPLACE('1234-2345','-','') as int)
SELECT CAST(REPLACE(@string,'-','') as int)
答案 3 :(得分:1)
如果你只想从字符串中删除' - ',那么你可以使用replace函数 并将其转换为int类型。 如下:
DECLARE @string NVARCHAR(30)='1234-2345'
SELECT CAST(REPLACE('1234-2345','-','') as int)
答案 4 :(得分:1)
根据您的上一条评论:
我需要1234-2345,其中 - 是一个符号
这是不可能的。整数数据类型不能包含任何符号字符。
答案 5 :(得分:0)
DECLARE
@STR NVARCHAR(50) = N'12345-235',
@SQL NVARCHAR(MAX) = '',
@PRAMS NVARCHAR(MAX) = N'@RETURN AS INT OUTPUT'
SET @SQL = N'SELECT @RETURN = CAST((' + @STR + N') AS INT)'
EXEC SP_EXECUTESQL @SQL , @PRAMS, @RETURN = @RETURNED OUTPUT
SELECT @RETURNED