Tsql Null或空全文谓词
我在为@keyword变量提供空值时遇到了这个错误。我找到了一个解决方案,将@keyword值设置为'''''。问题是,当该值设置为“'”且运行查询时没有显示任何结果时,它必须显示所有记录。我该怎么做Tsql Null或空全文谓词,tsql,Tsql,我在为@keyword变量提供空值时遇到了这个错误。我找到了一个解决方案,将@keyword值设置为'''''。问题是,当该值设置为“'”且运行查询时没有显示任何结果时,它必须显示所有记录。我该怎么做 declare @keyword nvarchar(50) set @keyword='""' SELECT u.Id as AId FROM Users u WHERE FREETEXT((FirstName,Lastname,MiddleName),@keyword) UNION SELE
declare @keyword nvarchar(50)
set @keyword='""'
SELECT u.Id as AId FROM Users u WHERE FREETEXT((FirstName,Lastname,MiddleName),@keyword)
UNION
SELECT c.AId FROM Certification c WHERE FREETEXT((Certification,School),@keyword)
UNION
SELECT ad.AId FROM ApplicantDetails ad WHERE FREETEXT((City,Province,StateorRegion),@keyword)
UNION
SELECT eb.AId FROM EducationalBackground eb WHERE FREETEXT((School,fieldofStudy),@keyword)
UNION
SELECT ed.AId FROM EmploymentDetails ed WHERE FREETEXT((Position,DescriptionofDuties,CompanyName,City,Province,StateorRegion),@keyword)
UNION
SELECT e.AId FROM Expertise e WHERE FREETEXT((Expertise),@keyword)
UNION
SELECT ge.AId FROM GeographicalExperience ge WHERE FREETEXT(([Description]),@keyword)
UNION
SELECT t.AId FROM Training t WHERE FREETEXT((Training,School),@keyword)
我明白了
IF ISNULL(@keyword,'') = '' SET @keyword = '""' ;
SELECT u.Id as AId FROM Users u WHERE @keyword = '""'
OR FREETEXT((FirstName,Lastname,MiddleName),@keyword)
UNION
SELECT c.AId FROM Certification c WHERE @keyword = '""'
OR FREETEXT((Certification,School),@keyword)
UNION
SELECT ad.AId FROM ApplicantDetails ad WHERE @keyword = '""'
OR FREETEXT((City,Province,StateorRegion),@keyword)
UNION
SELECT eb.AId FROM EducationalBackground eb WHERE @keyword = '""'
OR FREETEXT((School,fieldofStudy),@keyword)
UNION
SELECT ed.AId FROM EmploymentDetails ed WHERE @keyword = '""'
OR FREETEXT (Position,DescriptionofDuties,CompanyName,City,Province,StateorRegion),@keyword)
UNION
SELECT e.AId FROM Expertise e WHERE @keyword = '""'
OR FREETEXT((Expertise),@keyword)
UNION
SELECT ge.AId FROM GeographicalExperience ge WHERE @keyword = '""'
OR FREETEXT(([Description]),@keyword)
UNION
SELECT t.AId FROM Training t WHERE @keyword = '""'
OR FREETEXT((Training,School),@keyword)
在我的例子中,我有一个带有回车换行符的空字段,也称为CRLF(回车)。因此,对Null和修剪长度0的测试是不够的。我添加了一个替换CRLF的空格,这样修剪后的长度就不会将其捕捉为0
SELECT @searchString = REPLACE(@searchString, CHAR(13) + CHAR(10), ' ')
IF(@searchString IS NOT NULL AND LEN(LTRIM(RTRIM(@searchString))) > 0)
BEGIN
-- do the search
END
一旦解决了如何关闭罚单?你等待,然后在2天后,接受你自己的答案。