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

Откуда:
Сообщений: 55
Здравствуйте.

T-sql позволяет производить простейшие расчёты таким способом:

SELECT 2*5


Возможно ли вычислить значение аналогичного выражения, записанного в строковом типе, т.е.
DECLARE str nvarchar(50);
SET str = '2*5';
SELECT str;


но, чтобы не выводилась строка str, а вычислялось значение, записанное в str?
10 мар 15, 10:22    [17363031]     Ответить | Цитировать Сообщить модератору
 Re: Расчёты выражений, заданный в строковом типе  [new]
Добрый Э - Эх
Guest
Strength Class,

динамический SQL?
10 мар 15, 10:33    [17363088]     Ответить | Цитировать Сообщить модератору
 Re: Расчёты выражений, заданный в строковом типе  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
DECLARE str nvarchar(max)=N'2*5';
EXEC(str);
10 мар 15, 10:41    [17363145]     Ответить | Цитировать Сообщить модератору
 Re: Расчёты выражений, заданный в строковом типе  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Поправка:
iap
DECLARE str nvarchar(max)=N'SELECT 2*5';
EXEC(str);
10 мар 15, 10:42    [17363155]     Ответить | Цитировать Сообщить модератору
 Re: Расчёты выражений, заданный в строковом типе  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
iap
Поправка:
iap
DECLARE str nvarchar(max)=N'SELECT 2*5';
EXEC(str);

Или
DECLARE @str nvarchar(max)=N'2*5';
EXEC(N'SELECT '+@str);
10 мар 15, 10:45    [17363179]     Ответить | Цитировать Сообщить модератору
 Re: Расчёты выражений, заданный в строковом типе  [new]
Arm79
Member

Откуда: МО, Раменское
Сообщений: 3695
DECLARE @calc int;
EXECUTE sp_executesql N'SELECT @calcOUT = 2*5 + 7', N'@calcOUT int OUTPUT', @calcOUT = @calc OUTPUT;
SELECT @calc;
10 мар 15, 10:46    [17363191]     Ответить | Цитировать Сообщить модератору
 Re: Расчёты выражений, заданный в строковом типе  [new]
Strength Class
Member

Откуда:
Сообщений: 55
Большое спасибо.
10 мар 15, 11:41    [17363582]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить