Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вычисляемые выражения  [new]
gdn79
Member

Откуда:
Сообщений: 21
Добрый день!
Проблема в следующем. Есть код:
declare @a varchar(50), @b money, @c money
select @a = 'XX/2.00'
select @b = 10.00, @c = null
select @a = replace(@a,'XX',convert(varchar(10),@b))
select @c = ??? [@a]
select @a, @b, @c
Здесь вместо ??? нужно подставить некую функцию с входящим параметром @a. Это, как мне видится, функция, на вход которой подается строка("10.00/2.00"), а получаемое значение - 5 числовое.
Подскажите, как это реализовать? Есть ли такие функции вообще?
MS SQL 2003
9 дек 09, 14:21    [8040777]     Ответить | Цитировать Сообщить модератору
 Re: Вычисляемые выражения  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31168
gdn79
Добрый день!
Проблема в следующем. Есть код:
declare @a varchar(50), @b money, @c money
select @a = 'XX/2.00'
select @b = 10.00, @c = null
select @a = replace(@a,'XX',convert(varchar(10),@b))
select @c = ??? [@a]
select @a, @b, @c
Здесь вместо ??? нужно подставить некую функцию с входящим параметром @a. Это, как мне видится, функция, на вход которой подается строка("10.00/2.00"), а получаемое значение - 5 числовое.
Подскажите, как это реализовать? Есть ли такие функции вообще?
MS SQL 2003
Вообще нету.

Но может, вам поможет процедура sp_executesql
9 дек 09, 14:25    [8040807]     Ответить | Цитировать Сообщить модератору
 Re: Вычисляемые выражения  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
gdn79,
а select @a = 'XX/2.00'
может любые варианты принимать? То есть @a может быть и как
select @a = 'XX*25.00' ?
Вариант - писать нужную функцию самому.
9 дек 09, 14:27    [8040823]     Ответить | Цитировать Сообщить модератору
 Re: Вычисляемые выражения  [new]
gdn79
Member

Откуда:
Сообщений: 21
--__Александр__--
gdn79,
а select @a = 'XX/2.00'
может любые варианты принимать? То есть @a может быть и как
select @a = 'XX*25.00' ?
Вариант - писать нужную функцию самому.


Совершенно верно, выражение может быть любым внутри строки. Писать парсер как-то не прельщает...
Пробую sp_executesql. Возможно, что-то и выйдет.
9 дек 09, 14:30    [8040845]     Ответить | Цитировать Сообщить модератору
 Re: Вычисляемые выражения  [new]
gdn79
Member

Откуда:
Сообщений: 21
gdn79
Добрый день!
Проблема в следующем. Есть код:
declare @a varchar(50), @b money, @c money
select @a = 'XX/2.00'
select @b = 10.00, @c = null
select @a = replace(@a,'XX',convert(varchar(10),@b))
select @c = ??? [@a]
select @a, @b, @c
Здесь вместо ??? нужно подставить некую функцию с входящим параметром @a. Это, как мне видится, функция, на вход которой подается строка("10.00/2.00"), а получаемое значение - 5 числовое.
Подскажите, как это реализовать? Есть ли такие функции вообще?
MS SQL 2003


Спасибо всем, решение было найдено с помощью sp_executesql!
Вот оно:
declare @a nvarchar(50), @b money, @c money
select @a = 'XX/2.00'
select @b = 10.00, @c = null
select @a = replace(@a,'XX',convert(varchar(10),@b))
select @a = N'select @out = '+@a
EXECUTE sp_executesql @a, N'@out money output', @out=@c OUTPUT;
select @a, @b, @c
9 дек 09, 14:48    [8040984]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить