日期:2014-05-18  浏览次数:20794 次

Sql Server 字段值转换成SQL语句
各位大侠中午好.
 小弟在做一个项目的时候遇到一个问题,我有一个表a,a表有一个字段exp,该字段的值大概如下:

SQL code

     case
        when left(t_ring.prod_type,3) = '单排滚' or left(t_ring.prod_type,3) = '单排球' or 
        left(t_ring.prod_type,3) = '双列球' or left(t_ring.prod_type,3) = '球柱联' then 1
     end


其中 t_ring 是另外一个表的表名,prod_type是t_ring的一个字段.

  当我交叉 a表和t_ring表的时候,想让形如上面的语句都动态执行 比如返回1或者nul,而不是一个静态的字符串.
  有什么好方法吗? 我现在是用游标 动态取出exp,然后拼接在sql语句里. execute(sql)

------解决方案--------------------
单排滚--用一個表存儲就可以動態
------解决方案--------------------
有点明白,试试这个,
SQL code

declare @sql1 varchar(2000),@t table(sub_ring_id int)

selecr @sql1='select sub_ring_id from t_ring '+' where '+@proc_estimate+'=1'

insert @t exec(@sql1)

declare ring scroll cursor for select * from @t

...

------解决方案--------------------
动态字符串,只能用游标执行生成动态字符,我经常用