怎么简化这个sql语句?
有下面这么个存储过程,因为参数(@EntrustStyle)的不同,导致条件表达式(WHERE..)也不同,如下所示.这里用了4个IF ELSE解决问题的,我想简化到一个SQL语句,请问如何实现??谢谢.
/* 委托单 */
CREATE proc up_CheckEtrust
@EntrustStyle varchar(255) = ' ', --委托方式(有:RT、UT、PT、MT)
@FieldName varchar(255)= ' ' --字段名称
AS
IF @FieldName= 'RT_check '
SELECT *
FROM FROM info_weldlist
WHERE RT_check = '√ '
ELSE
IF @FieldName= 'UT_check '
SELECT *
FROM FROM info_weldlist
WHERE UT_check = '√ '
ELSE
IF @FieldName= 'PT_check '
SELECT *
FROM FROM info_weldlist
WHERE PT_check = '√ '
ELSE
IF @FieldName= 'MT_check '
SELECT *
FROM FROM info_weldlist
WHERE MT_check = '√ '
[解决办法]
CREATE proc up_CheckEtrust
@EntrustStyle varchar(255) = ' ', --委托方式(有:RT、UT、PT、MT)
@FieldName varchar(255)= ' ' --字段名称
AS
exec( 'select * from info_weldlist where '+@FieldName+ '= ' '√ ' ' ')