本文介绍了如何在sql中编写动态查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞!BEGIN DECLARE @CAMP VARCHAR(2) DECLARE @TYPE VARCHAR(10) SET @TYPE='' SET @CAMP='' DECLARE @QRY NVARCHAR(300) SET @QRY='SELECT * FROM [dbo].[LIBMAST ] WHERE ' IF(@CAMP<>'') BEGIN SET @QRY=@QRY+'CAMPUS='+@CAMP+'AND ' END IF(@TYPE<>'') BEGIN SET @QRY=@QRY+'TYPE= '+@TYPE END EXEC(@QRY)END 在这种情况下,当两个参数都为空时,则为erro r显示'WHERE''附近的语法不正确。当@TYPE参数为空时,和@CAMP有值hsowing错误 ''AND'附近的语法不正确'。 请帮帮我。in this case when both parameter is empty then error showing "Incorrect syntax near ''WHERE''".when @TYPE parameter is empty and @CAMP have values hsowing error "Incorrect syntax near ''AND''".please help me.推荐答案BEGIN DECLARE @CAMP VARCHAR(2) DECLARE @TYPE VARCHAR(10) SET @TYPE=''; SET @CAMP='' DECLARE @QRY NVARCHAR(300) SET @QRY='SELECT * FROM [dbo].[LIBMAST ] WHERE (1=1)'; IF(@CAMP<>'') BEGIN SET @QRY=@QRY+' AND CAMPUS='''+@CAMP + ''''; END IF(@TYPE<>'') BEGIN SET @QRY=@QRY + ' AND TYPE= '''+@TYPE + ''''; END EXEC SP_ExecuteSql @QRY;END 只需使用(1 = 1)真正的技巧。Just use (1=1) always true trick.SET @QRY=@QRY+'CAMPUS='+@CAMP+'AND ' to toSET @QRY=@QRY+'CAMPUS='+@CAMP+' AND 'AND之前的空格 谢谢 --RASpace before "AND"Thanks--RA 这篇关于如何在sql中编写动态查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
07-13 02:14