SET NOCOUNT ON
--Create a temporary table
CREATE TABLE #TempResult
(
ID int IDENTITY,
resultid int,
resultname varchar(100),
resultbody text,
resulttypeurl varchar(200),
resultcssurl varchar(100)
)
-- Insert the rows from tblItems into the temp. table
INSERT INTO #TempResult (resultid,resultname,resultbody,resulttypeurl,resultcssurl)
SELECT textid as resultid, textname as resultname, textbody as resultbody,
typeurl as resulttypeurl, cssurl as resultcssurl
FROM tbltext, tbltype, tblcss
WHERE (textbody LIKE '%t%' OR textname LIKE '%t%') AND texttypeid = typeid AND textcssid = cssid
AND textbody NOT LIKE '<p> </p>'
INSERT INTO #TempResult (resultid,resultname,resultbody,resulttypeurl,resultcssurl)
SELECT liid as resultid, liname as resultname, libody as resultbody,
typeurl as resulttypeurl, cssurl as resultcssurl
FROM tblListItem, tblType, tblCss, tblList
WHERE (libody LIKE '%t%' OR liname LIKE '%t%') AND lilistid = listid AND listitemcssid = cssid AND listitemtypeid = typeid
AND libody NOT LIKE '<p> </p>'
SELECT resultid,resultname,resultbody,resulttypeurl,resultcssurl
FROM #TempResult
ORDER BY charindex('t',resultbody), charindex('t',resultname), resultname, resultbody
-- Turn NOCOUNT back OFF
SET NOCOUNT OFF
FElmeddelande:
Server: Msg 420, Level 16, State 1, Line 29
The text, ntext, and image data types cannot be used in an ORDER BY clause.
Men om jag gör så här:
SELECT textid as resultid, textname as resultname, textbody as resultbody
FROM tblText WHERE textbody LIKE '%t%'
ORDER BY charindex('t',textbody)
Så går det utmärkt.
Om man nu inte får använda ett "text" fält i en order by (varför man nu inte skulle få det) så fattar jag inte varför jag får göra det i den andra frågan.
btw, om någon har en smartare idé på hur man kan utforma den här sök funktionen så tipsa gärna. (just nu söker den på "t" men det skall ju bytas ut mot en variabel senare.)
------------------
National Blonde Day!
"Yeah, bam, bam, bam, bam, bam. I told 'em not to touch the alarm"