有Sql server中有沒有辦法實現把字串'1+6+9+10'變成數值26的方法? execute ('select'+'1+6+9+10') 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select cast('1' as int)+'6'+'9'+'10' declare @s varchar(50)set @s='select'+' 1+6+9+10'execute (@s) CAST 和 CONVERT将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。语法使用 CAST:CAST ( expression AS data_type ) 使用 CONVERT:CONVERT (data_type[(length)], expression [, style])如DECALRE @AA VARCHAR(9)SELECT @AA='1'CAST(@AA AS INT) declare @a varchar(20)set @a = '1+6+9+10'declare @sql varchar(50)set @sql = 'select ' + @aexec(@sql) declare @变量 int,@sql nvarchar(4000)set @sql='set @大力='+'1+6+9+10'exec sp_executesql @sql,N'@大力 int output',@变量 outputselect @变量 结果 declare @结果 int,@sql nvarchar(4000)set @sql='set @ire='+'1+6+9+10'exec sp_executesql @sql,N'@ire int output',@结果 outputprint @结果 TO:pengdali, zjcxc 我也看了Sp_executesql,看是沒try成功后來用了兩個 procedure 也得到了上述結果但是有一個問題,不能表達是怎麼寫,返回的結果總是沒有小數? declare @var floatdeclare @sql nvarchar(4000)set @sql='set @var='+'(1+6+9+10)/7'exec sp_executesql @sql,N'@var float output',@var outputselect @var返回結果卻是3.0,為什麼不是正確的小數值? declare @变量 numeric(10,2),@sql nvarchar(4000)set @sql='set @大力='+'1.5+6.2+9.4+10'exec sp_executesql @sql,N'@大力 numeric(10,2) output',@变量 outputselect @变量 结果 難道是我的Sql server的問題? 變量定義不一樣定義成numeric(10,2),只要表達式中有小數部分就行! sql 同库俩表数据共享~~~ 如何修改生产的xml文件格式? 行转换为列,行为动态的 两个表的数据怎样合并到一个表中? win7下SQLSERVER 重启不了.大家帮我看下 分组统计问题 请问我想让两个数据库中的数据同步如何实现 请教:三个数据库的sql文的验证,有什么工具比较好??? 求一 sql 语句 求救:在查询分析器中执行一存储过程,要是提示”未能找到OLE DB提供程序‘Microsoft.Jet.4.0'的注册项。 大伙看看,如何实现这个功能呢?
declare @s varchar(50)
set @s='select'+' 1+6+9+10'
execute (@s)
将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。语法
使用 CAST:CAST ( expression AS data_type ) 使用 CONVERT:CONVERT (data_type[(length)], expression [, style])
如
DECALRE @AA VARCHAR(9)
SELECT @AA='1'
CAST(@AA AS INT)
set @a = '1+6+9+10'
declare @sql varchar(50)
set @sql = 'select ' + @a
exec(@sql)
set @sql='set @大力='+'1+6+9+10'exec sp_executesql @sql,N'@大力 int output',@变量 outputselect @变量 结果
set @sql='set @ire='+'1+6+9+10'exec sp_executesql @sql,N'@ire int output',@结果 outputprint @结果
我也看了Sp_executesql,看是沒try成功
后來用了兩個 procedure 也得到了上述結果但是有一個問題,不能表達是怎麼寫,返回的結果總是沒有小數?
declare @sql nvarchar(4000)
set @sql='set @var='+'(1+6+9+10)/7'exec sp_executesql @sql,N'@var float output',@var outputselect @var返回結果卻是3.0,為什麼不是正確的小數值?
set @sql='set @大力='+'1.5+6.2+9.4+10'exec sp_executesql @sql,N'@大力 numeric(10,2) output',@变量 outputselect @变量 结果