转载一篇拼SQL字符串的语句
2008-07-08 15:08
288 查看
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[T_Consultation_Select]
@ConsultationStyleID TINYINT,
@AnswerUserID VARCHAR(30),
@IncomeCallBeginTime [DATETIME],
@IncomeCallEndTime [DATETIME]
AS
BEGIN
DECLARE @whereStr VARCHAR(8000),
@count INT
SET @count=0
SET @whereStr=''
IF @ConsultationStyleID IS NOT NULL
BEGIN
IF(@count>0)
BEGIN
SELECT @whereStr=@whereStr+' AND T_Consultation.ConsultationStyleID ='+Convert(Varchar(10),@ConsultationStyleID)
END
ELSE
BEGIN
SELECT @whereStr=@whereStr+' T_Consultation.ConsultationStyleID ='+Convert(Varchar(10),@ConsultationStyleID)
END
SET @count=@count +1
END
IF @AnswerUserID IS NOT NULL
BEGIN
IF(@count>0)
BEGIN
SELECT @whereStr=@whereStr+' AND T_Consultation.AnswerUserID ='''+Convert(Varchar(10),@AnswerUserID)''
END
ELSE
BEGIN
SELECT @whereStr=@whereStr+' T_Consultation.AnswerUserID ='''+Convert(Varchar(10),@AnswerUserID)''
END
SET @count=@count +1
END
IF @IncomeCallBeginTime IS NOT NULL
BEGIN
IF(@count>0)
BEGIN
SELECT @whereStr=@whereStr+' AND T_Consultation.CreateTime >=''+ CONVERT(VARCHAR(10),@IncomeCallBeginTime)'''
END
ELSE
BEGIN
SELECT @whereStr=@whereStr+' T_Consultation.CreateTime >='' + CONVERT(VARCHAR(10),@IncomeCallBeginTime)'''
END
END
IF @IncomeCallEndTime IS NOT NULL
BEGIN
IF(@count>0)
BEGIN
SELECT @whereStr=@whereStr+' AND T_Consultation.CreateTime <='' + CONVERT(VARCHAR(10),@IncomeCallEndTime)'''
END
ELSE
BEGIN
SELECT @whereStr=@whereStr+' T_Consultation.CreateTime <='' + CONVERT(VARCHAR(10),@IncomeCallEndTime)'''
END
END
IF(@count>0)
SELECT @whereStr='SELECT [CreateTime]
FROM T_Consultation WHERE T_Consultation.FollowUpMark='+'1'+' And ' + @whereStr
ELSE
SELECT @whereStr='SELECT ConsultationID,(SELECT ParaName FROM T_SysPara WHERE GroupID=14 AND ParaID=T_Consultation.ConsultationStyleID)AS ConsultationStyleID,
[ConsultationContent],[ConsultationResults],(SELECT ParaName FROM T_SysPara WHERE GroupID=16 AND ParaID=T_Consultation.HaveOrderingIntention)AS HaveOrderingIntention,[OrderingIntentionContent],
[CustomerID],[AnswerUserID],[CreateTime]
FROM T_Consultation where T_Consultation.FollowUpMark='+'1'
END
select (@whereStr)
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[T_Consultation_Select]
@ConsultationStyleID TINYINT,
@AnswerUserID VARCHAR(30),
@IncomeCallBeginTime [DATETIME],
@IncomeCallEndTime [DATETIME]
AS
BEGIN
DECLARE @whereStr VARCHAR(8000),
@count INT
SET @count=0
SET @whereStr=''
IF @ConsultationStyleID IS NOT NULL
BEGIN
IF(@count>0)
BEGIN
SELECT @whereStr=@whereStr+' AND T_Consultation.ConsultationStyleID ='+Convert(Varchar(10),@ConsultationStyleID)
END
ELSE
BEGIN
SELECT @whereStr=@whereStr+' T_Consultation.ConsultationStyleID ='+Convert(Varchar(10),@ConsultationStyleID)
END
SET @count=@count +1
END
IF @AnswerUserID IS NOT NULL
BEGIN
IF(@count>0)
BEGIN
SELECT @whereStr=@whereStr+' AND T_Consultation.AnswerUserID ='''+Convert(Varchar(10),@AnswerUserID)''
END
ELSE
BEGIN
SELECT @whereStr=@whereStr+' T_Consultation.AnswerUserID ='''+Convert(Varchar(10),@AnswerUserID)''
END
SET @count=@count +1
END
IF @IncomeCallBeginTime IS NOT NULL
BEGIN
IF(@count>0)
BEGIN
SELECT @whereStr=@whereStr+' AND T_Consultation.CreateTime >=''+ CONVERT(VARCHAR(10),@IncomeCallBeginTime)'''
END
ELSE
BEGIN
SELECT @whereStr=@whereStr+' T_Consultation.CreateTime >='' + CONVERT(VARCHAR(10),@IncomeCallBeginTime)'''
END
END
IF @IncomeCallEndTime IS NOT NULL
BEGIN
IF(@count>0)
BEGIN
SELECT @whereStr=@whereStr+' AND T_Consultation.CreateTime <='' + CONVERT(VARCHAR(10),@IncomeCallEndTime)'''
END
ELSE
BEGIN
SELECT @whereStr=@whereStr+' T_Consultation.CreateTime <='' + CONVERT(VARCHAR(10),@IncomeCallEndTime)'''
END
END
IF(@count>0)
SELECT @whereStr='SELECT [CreateTime]
FROM T_Consultation WHERE T_Consultation.FollowUpMark='+'1'+' And ' + @whereStr
ELSE
SELECT @whereStr='SELECT ConsultationID,(SELECT ParaName FROM T_SysPara WHERE GroupID=14 AND ParaID=T_Consultation.ConsultationStyleID)AS ConsultationStyleID,
[ConsultationContent],[ConsultationResults],(SELECT ParaName FROM T_SysPara WHERE GroupID=16 AND ParaID=T_Consultation.HaveOrderingIntention)AS HaveOrderingIntention,[OrderingIntentionContent],
[CustomerID],[AnswerUserID],[CreateTime]
FROM T_Consultation where T_Consultation.FollowUpMark='+'1'
END
select (@whereStr)
相关文章推荐
- 转载一篇介绍sql语句left join,right join,inner join的文章
- 替换字符串sql语句(转载)
- 几段SQL Server语句和存储过程(转载)
- [转载]精妙Sql语句㈡
- 转载--经典SQL语句
- oracle sql语句优化(转载)
- sql语句完成数据的导入导出(转载自http://www.programbbs.com/doc/317.htm)
- SQL语句中截取字符串Substr
- SQL语句中和字符串的拼接问题
- 转载]DataGrid连接Access的快速分页法(2)——SQL语句的选用(升序)
- sql 语句操作,修改字段中字符串的一部分
- (转载)异构数据库之间完全可以用SQL语句导数据
- 50个 sql语句(转载)
- sql语句字符串处理大全
- 经典SQL语句集锦-转载
- sql语句中charindex的用法 可用于截取字符串
- mysql下sql语句 update 字段=字段+字符串
- 每日学习总结:DropDownList是否已选择验证、存储过程参数为sql字符串问题、将截断字符串或二进制数据。\r\n语句已终止
- 【转载】经典SQL语句大全
- oracle 查询最近执行过的 SQL语句(转载)