表 THTCloseRole 中有 COLUMN :cIFWord nvarchar(100),--里边有IF语句
cTrueValue nvarchar(100) --真值
 ,cFalseValue,nvarchar(100) --假值
但 cIFWord 里的IF语句为动态语句 如 CASE WHEN @TEXT MODE 3 = 0 THEN RETURN TRUE ELSE RETURN FALSE 这样的判断语句
如果 cIFWord 返回的为 TRUE时候 取cTrueValue 的值 FALSE的时候 取cFalseValue的值,但是 @TEXT的值是可变的 这个时候存储过程不知道怎么写好,有没有实例啊~ 在线等~ 急急急~

解决方案 »

  1.   

    也就是说执行COLUMN cIFWord 的条件语句 判断显示cTrueValue ,或cFalseValue内的值,条件语句可自定,这样能明白不?我写的条件语句可能是错的~请多指点下下~
      

  2.   

    create proc procname
    @text int
    as
    begin
      declare @sql varchar(1000)
      select @sql='select cIFWord=case when '+@text+' mod MODE 3 = 0 THEN cTrueValue ELSE FalseValue end from THTCloseRole'
      exec(@sql)
    end
      

  3.   

    上面的错了
    MSSQL 里取余数用的是 %
    create proc procname
    @text int
    as
    begin
    declare @sql varchar(1000)
    select @sql='select cIFWord=case when '+@text+' % 3 = 0 THEN cTrueValue ELSE FalseValue end from THTCloseRole'
    exec(@sql)
    end
      

  4.   

    TO kk19840210(飞天小虫)
    这么写的话 执行字符形式的@sql语句
    但我想的是 
    Declare @VALUE1 nvarchar(100)
    SELECT 
     @VALUE1 =cIFWord 
    FROM THTCloseRole 
    PRINT @VALUE1
    --------------------------------------
    --显示
    @value % 3 ==0 ? 1 : 0 然后执行 @VALUE1的值来获取 1 或 0
    如果是1的话 显示 cTrueValue  则显示FalseValue 如上的效果啊~