我个人觉得不用笨办法很难!
我一般用以下方法:
select * from userstable where userid=(case @userid when 0 then userid else @userid end),username=(case @username when '' then username else @username end)......
我一般用以下方法:
select * from userstable where userid=(case @userid when 0 then userid else @userid end),username=(case @username when '' then username else @username end)......
解决方案 »
- 导入Excel到SQL SERVER出现的格式问题
- 求一个日期 周几的问题
- 想起最开始学计算机时候的一个技巧,替换case when 在两个字段中选会最小的办法。
- 如何实现对表中的相同列自动编号???
- 日志备份还原问题....
- sql server2000中新建sql server注册出现错误:sql server不存在或访问被拒绝! 这是怎么个情况???
- 关于触发器的问题!
- 70-228的一道选题,请大家选择
- 一个极难的sql查询,难死办公室所有人~~~~~~~~在线等高手解答
- 有谁能把我的存储过程改为oracle的啊!简单的存储过程
- 在server side的脚本里面 怎样可以让sqlserver2k的查询结果以XML的方式返回
- 关于批量追加数据问题
如果是 可以这样写 不用动态查询语句Create procedure upUserWorksGetList
@UserId int=0
as
IF @UserId>0
BEGIN
SELECT …… FROM TABLENAME
WHERE USERID=@USERID
END ELSE
BEGIN
SELECT …… FROM TABLENAME
END
exec(sqlString)
用exec sp_exceuteSql(sqlString,@paramlist,@paravale)
优点: sp_executesql 中,Transact-SQL 语句的实际文本在两次执行之间未改变,所以查询优化器应该能将第二次执行中的 Transact-SQL 语句与第一次执行时生成的执行计划匹配。这样,SQL Server 不必编译第二条语句。
Transact-SQL 字符串只生成一次。
整型参数按其本身格式指定。不需要转换为 Unicode。
具体看看帮助把,希望对你有帮助