Я боролся уже пару дней, прежде чем повернуть сюда.
Я пытаюсь создать функцию 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
Я также нашел некоторый код о том, как запросить таблицу TableB и отправить ее результат функции и запустить весь набор.
SELECT
*
FROM
TableB
CROSS APPLY
dbo.StringToInteger(TableB.ColumnWithText) AS IntegerOutOfText
Мой вопрос: как отрегулировать код вверху, чтобы он загружался в БД в качестве функции при запуске? Как я стараюсь, я не могу импортировать SQL Server как функцию.
И другой мой вопрос: как настроить нижний код так, чтобы он вызывал функцию и преобразовывал результирующий набор всего запроса в заданное число.
С наилучшими пожеланиями
Daniel