表 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的值是可变的 这个时候存储过程不知道怎么写好,有没有实例啊~ 在线等~ 急急急~
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的值是可变的 这个时候存储过程不知道怎么写好,有没有实例啊~ 在线等~ 急急急~
@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
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
这么写的话 执行字符形式的@sql语句
但我想的是
Declare @VALUE1 nvarchar(100)
SELECT
@VALUE1 =cIFWord
FROM THTCloseRole
PRINT @VALUE1
--------------------------------------
--显示
@value % 3 ==0 ? 1 : 0 然后执行 @VALUE1的值来获取 1 或 0
如果是1的话 显示 cTrueValue 则显示FalseValue 如上的效果啊~