读书人

如何简化这个sql语句

发布时间: 2012-01-20 18:53:53 作者: rapoo

怎么简化这个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+ '= ' '√ ' ' ')

读书人网 >SQL Server

热点推荐