大神,求解决,关于SQL拼凑字符串的有关问题,速结贴
大神,求解决,关于SQL拼凑字符串的问题,速结贴
我这句到底有没错,运行时没反应
------解决方案--------------------
------解决方案--------------------
你说这句?单纯看语句没问题,如果有问题可能在on的条件那里,没有匹配的数据,改成left join试试
declare @tsql varchar(600)
select @tsql='select distinct rsi_doctorcode from rsi_sampleinfo_yezi where 1=1 '
+case when @areacode<>'' then ' and rsi_area='''+@areacode+'' else '' end
+case when @hospitalname<>'' then ' and hospitalname=''%'+@hospitalname+'%' else '' end
+case when @doctorname<>'' then ' and doctorname=''%'+@doctorname+'%' else '' end
+case when @proxyname<>'' then ' and proxyname=''%'+@proxyname+'%' else '' end
+case when @proxyphone<>'' then ' and proxyphone=''%'+@proxyphone+'%' else '' end
+case when @proxyemail<>'' then ' and proxyemail=''%'+@proxyemail+'%' else '' end
我这句到底有没错,运行时没反应
------解决方案--------------------
declare @tsql varchar(600),@areacode VARCHAR(50), @hospitalname VARCHAR(50),@doctorname VARCHAR(50),@proxyname VARCHAR(50),
@proxyphone VARCHAR(50),@proxyemail VARCHAR(50)
SELECT @tsql='select distinct rsi_doctorcode from rsi_sampleinfo_yezi where 1=1 '
IF @areacode>''
SET @tsql=@tsql+' and rsi_area=@areacode'
IF @hospitalname>''
SET @tsql=@tsql+' and hospitalname=@hospitalname'
...--中间的自己去写
EXEC sp_executesql @tSql
,N'@areacode VARCHAR(50), @hospitalname VARCHAR(50),@doctorname VARCHAR(50),@proxyname VARCHAR(50),@proxyphone VARCHAR(50),@proxyemail VARCHAR(50)'
,@areacode , @hospitalname ,@doctorname ,@proxyname ,@proxyphone ,@proxyemail
------解决方案--------------------
你说这句?单纯看语句没问题,如果有问题可能在on的条件那里,没有匹配的数据,改成left join试试
SELECT DISTINCT
b.rsi_areaname ,
b.rsi_region ,
a.wp_ACNid ,
b.rsi_hospital AS rsi_shopname ,
b.rsi_doctorcode ,
b.rsi_doctor ,
b.rsi_proxycode ,
b.rsi_proxy ,
b.rsi_proxy_phone ,
b.rsi_proxy_email ,
a.wp_contact_num ,
a.wp_contact_num_success ,
a.wp_num2 ,
a.wp_quota ,
a.completeschedule ,
a.completeschedulestatus
FROM wp_writepaper_schedule a
JOIN rsi_sampleinfo_yezi b ON a.wp_AcnID = b.rsi_doctorcode