在转过这里之前,我已经挣扎了好几天了。如何创建一个将字符串集合转换为整数的函数
我想构建一个函数,StringToInteger,将文本字符串转换为整数。我研究了网络,并得到了迄今为止,我有一些代码将一个字符串,输入到一个变量,一个整数。
DECLARE @YourString varchar(500)
SELECT @YourString='select'
;WITH AllNumbers AS
(
SELECT 1 AS Number
UNION ALL
SELECT Number+1
FROM AllNumbers
WHERE Number<LEN(@YourString)
)
SELECT
(SELECT
RIGHT('000'+CONVERT(varchar(max),ASCII(SUBSTRING(@YourString,Number,1))),3)
FROM AllNumbers
ORDER BY Number
FOR XML PATH(''), TYPE
).value('.','varchar(max)') AS NewValue
--OPTION (MAXRECURSION 500) --<<needed if you have a string longer than 100
我还发现,关于如何查询表,表B,并将其结果发送到功能,并有一整套运行一些代码。
SELECT
*
FROM
TableB
CROSS APPLY
dbo.StringToInteger(TableB.ColumnWithText) AS IntegerOutOfText
我的问题是,应该如何在上面的代码进行调整,使其加载到数据库的功能,当运行?我有多少尝试,我不能让SQL Server导入它作为一个函数。
而我的另一个问题是,底部代码应该如何调整,以便它调用该函数并让它将整个查询的结果集转换为一组数字。
问候 丹尼尔
它返回一个值,但不是数据类型integer,这是我需要的。我尝试更改函数bigint(也是int)中的变量,但遇到:Msg 248,Level 16,State 1,Line 1 varchar值'050051051049'的转换溢出了一个int列。 – user641605
同样得到:Msg 8115,Level 16,State 2,Line 1 将表达式转换为数据类型bigint的算术溢出错误。 – user641605
@user这里你可以看到int和bigint的最大尺寸http://msdn.microsoft.com/en-us/library/ms187745.aspx –