Является ли статья Full Text Search CONTAINS всегда оцененной?

tsql full-text-search

832 просмотра

1 ответ

Есть ли способ избежать ошибки Null или пустой полнотекстовый предикат в приведенном ниже примере?

DECLARE @SearchText VARCHAR(1000);
SET @SearchText = ''

SELECT * FROM   myTable
WHERE
    /* 
    SOME CONTITIONS 
    AND
    */ 
    ( 
      @SearchText = ''
      OR
      (
        @SearchText <> ''
        AND
        CONTAINS((myField1, myField2), @SearchText)
      )
    )

Я мог бы сделать так, но я хочу избежать дублирования кода:

DECLARE @SearchText VARCHAR(1000);
SET @SearchText = ''

IF @SearchText = ''
BEGIN
  SELECT * FROM   myTable
  WHERE 
      /* 
      SOME CONTITIONS 
      */ 
END
ELSE
BEGIN
  SELECT * FROM   myTable
  WHERE
      /* 
      SOME CONTITIONS 
      AND
      */ 
      ( 
        @SearchText = ''
        OR
        (
          @SearchText <> ''
          AND
          CONTAINS((myField1, myField2), @SearchText)
        )
      )
END

[РЕДАКТИРОВАТЬ]

Я нашел ответ здесь

Таким образом, решение состоит в том, чтобы установить @SearchText '""'вместо того, чтобы оставить его пустым.

Автор: leoinfo Источник Размещён: 17.05.2019 03:48

Ответы (1)


3 плюса

Решение

Я нашел ответ здесь .

Решение состоит в том, чтобы установить @SearchText '""'вместо того, чтобы оставить его пустым.

Автор: leoinfo Размещён: 09.02.2012 08:28
Вопросы из категории :
32x32