次のストアドプロシージャを作成しました。
ALTER PROCEDURE [dbo].[ExampleSP]
(
@SearchText NVARCHAR(4000),
@ID INT = NULL
)
AS
BEGIN
SET NOCOUNT ON;
SELECT
deID,
deTitle
FROM tblDemo As de
LEFT JOIN tblLinkTable As lnk ON (lnk.ID = de.deID)
WHERE CONTAINS(cstKeywords, @SearchText)
AND ((@ID IS NULL) OR (lnk.ID = @ID))
GROUP BY deID,Title
ORDER BY de.Title
ただし、次のテーブル列からnullではない最初のフィールドを見つけることもできる必要があります。
deIntroText、deCompanyText、deTimetableText、およびdeExampleText
そして、SELECTから返されるレコードごとにこれを行う必要があります。
だから私はそれを格納するための一時的な列を作成する必要があることを理解し、次のようなIFステートメントを使用する必要があると思います:
IF deIntroText IS NOT Null
THEN TempFieldToReturn = 1
ELSE IF deCompanyText IS NOT Null
THEN TempFieldToReturn = 2
ELSE IF deTimetableText IS NOT Null
THEN TempFieldToReturn = 3
ELSE IF deExampleText IS NOT Null
THEN TempFieldToReturn = 4
だから私の質問は-これを達成するための最良の方法は何ですか?任意の例をいただければ幸いです。