Declare  STR_TMP nvarchar(500)
SELECT STR_TMP='(123+321*156+(321-213)*101)/(123-23)'
问:如何获取STR_TMP 代表的计算结果?
谢谢!

解决方案 »

  1.   

    Declare  @STR_TMP nvarchar(500)
    SELECT @STR_TMP='(123+321*156+(321-213)*101)/(123-23)'
    SELECT @STR_TMP----------
    (123+321*156+(321-213)*101)/(123-23)
      

  2.   

    如果要显示公式计算出的数字结果,还需要cast转换一下Declare  @STR_TMP nvarchar(500)
    SELECT @STR_TMP=cast((123+321*156+(321-213)*101)/(123-23) as nvarchar(500))
    SELECT @STR_TMP--------661
      

  3.   

    TO:rookie_one   需要得到计算结果!
      

  4.   

    因为@STR_TMP 声明为字符型
    所以需要把一系列数字计算之后的整体 来进行转化现实
      

  5.   

    Declare  @STR_TMP nvarchar(500)
    SELECT @STR_TMP='(123+321*156+(321-213)*101)/(123-23)'
    exec('select result='+@STR_TMP)--result
    result      
    ----------- 
    611
      

  6.   

    "如果要显示公式计算出的数字结果,还需要cast转换一下Declare  @STR_TMP nvarchar(500)
    SELECT @STR_TMP=cast((123+321*156+(321-213)*101)/(123-23) as nvarchar(500))
    SELECT @STR_TMP--------661
    "
    SELECT @STR_TMP=cast((123+321*156+(321-213)*101)/(123-23) as nvarchar(500))
    这里有问题,@STR_TMP本身是个字符串,是个动态的计算式,我要获取的是这个字符串里所包含的计算式的结果。
      

  7.   

    Declare  @STR_TMP nvarchar(500)
    SELECT @STR_TMP='select (123+321*156+(321-213)*101)/(123-23)'
    exec (@STR_TMP)----------
    661
      

  8.   

    还有一个问题,我如何获取exec (@STR_TMP) 的结果?谢谢!
      

  9.   

    select * from lspzk1
    drop table t
    Declare  @STR_TMP nvarchar(500)
    SELECT @STR_TMP='create table t(a int) insert t values ((123+321*156+(321-213)*101)/(123-23)) '
    exec (@STR_TMP)
    select a from t--或者再声明一个变量select @变量名=a from t 再利用此变量---
    a661