Поделиться через


WITH - Псевдоним группы AS

Псевдонимы группы столбцов позволяют использовать более короткие имена вместо имени столбца или группы столбцов. Необязательный псевдоним группы является частью предложения WHERE. Его синтаксис выглядит следующим образом:

...WHERE[ WITH(<columns>) AS #<alias_name>]
[,WITH(<columns>) AS #<alias_name>]

Можно указать несколько псевдонимов групп, разделив WITH... Предикаты AS по запятым.

Если псевдоним группы ссылается на предикат предложения WHERE, условие применяется к каждому столбцу в группе. Логические значения, полученные от сопоставления каждого столбца, объединяются с помощью оператора логических OR.

Псевдоним необходимо определить, прежде чем его можно будет использовать, и его можно использовать только в предложении WHERE. Имя псевдонима должно быть обычным идентификатором, предшествующим обязательному знаку фунта (#).

Описатель столбцов может содержать один или несколько описателей столбцов, разделенных запятыми. Список столбцов должен быть заключен в скобки и весовые значения можно назначить каждому. Каждый столбец имеет следующий синтаксис:

<column_identifier> [<weight_assignment>]

Сведения об указании весов столбцов см. в предикате FREETEXT и CONTAINS Predicate.

Идентификатор столбца может быть регулярным или разделителем.

Примеры

В следующих примерах предложения WHERE показано, когда и как можно использовать предикат псевдонима группы. В первом примере показано более повторяющееся предложение WHERE, которое не использует псевдоним группы.

...WHERE
    FREETEXT("System.ItemNameDisplay",'"computer software"')
    OR
    FREETEXT("System.Title",'"computer software"')
    OR 
    FREETEXT("System.Keywords",'"computer software"')

Приведенный выше пример можно упростить с помощью псевдонима группы, как показано в следующем примере.

...WHERE
    WITH("System.ItemNameDisplay","System.Title","System.Keywords")
    AS #Doc-Descriptions
    FREETEXT(#Doc-Descriptions,'"computer software"')

Ниже приведен пример положительной весовой оценки, где свойство Title получает больше веса при определении относительного ранга.

...WHERE
    WITH("System.Title":0.8,*:0.5,
         "System.Keywords")
    AS #Doc-Descriptions
    FREETEXT(#Doc-Descriptions,'"computer software"')

Ниже приведен пример отрицательного весового значения, в котором свойство Title со весом 0 не считается.

...WHERE
    WITH("System.Title":0,*:1.0,
         "System.Keywords")
    AS #Doc-Descriptions
    FREETEXT(#Doc-Descriptions,'"computer software"')

Справочник

предикате FREETEXT

концептуальные

Full-Text предикаты

предика ты, отличные отFull-Text