Меню

Sql сравнение строки со строкой



сравнение строковых данных Comparing String Data

Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions) Azure-SSIS Integration Runtime в Фабрике данных Azure SSIS Integration Runtime in Azure Data Factory Azure-SSIS Integration Runtime в Фабрике данных Azure SSIS Integration Runtime in Azure Data Factory Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions) Azure-SSIS Integration Runtime в Фабрике данных Azure SSIS Integration Runtime in Azure Data Factory Azure-SSIS Integration Runtime в Фабрике данных Azure SSIS Integration Runtime in Azure Data Factory

Сравнения строк — важная составляющая любого преобразования, которое выполняется с помощью служб Службы Integration Services Integration Services . Кроме того, они применяются для вычисления выражений в переменных и выражениях свойств. String comparisons are an important part of many of the transformations performed by Службы Integration Services Integration Services , and string comparisons are also used in the evaluation of expressions in variables and property expressions. Например, при преобразовании «Сортировка» сравниваются значения в наборе данных для сортировки данных по возрастанию или по убыванию. For example, the Sort transformation compares values in a dataset to sort data in ascending or descending order.

Настройка преобразований для сравнений строк Configuring Transformations for String Comparisons

Для таких преобразований, как «Сортировка», «Выполнение статистического вычисления», «Нечеткое группирование» и «Нечеткий уточняющий запрос», можно настраивать различные способы сравнения строк на уровне столбца. The Sort, Aggregate, Fuzzy Grouping, and Fuzzy Lookup transformations can be customized to change the way strings are compared at the column level. Например, можно указать, что сравнение нечувствительно к регистру. Это означает, что символы в верхнем и нижнем регистре будут считаться одинаковыми. For example, you can specify that a comparison ignores case, which means that uppercase and lowercase characters are treated as the same character.

Приведенные ниже преобразования используют выражения, в которых могут быть строковые сравнения. The following transformations use expressions that can include string comparisons.

Преобразование «Условное разбиение» с помощью сравнений строк в выражениях может определять, в какой выход следует отправлять строки данных. The Conditional Split transformation can use string comparisons in expressions to determine which output to send the data row to. Дополнительные сведения см. в статье Conditional Split Transformation. For more information, see Conditional Split Transformation.

Преобразование «Производный столбец» с помощью строковых сравнений в выражениях может формировать новые значения столбцов. The Derived Column transformation can use string comparisons in expressions to generate new column values. Дополнительные сведения см. в разделе Derived Column Transformation. For more information, see Derived Column Transformation.

Кроме того, выражения со строковыми сравнениями можно применять в переменных, сопоставлении переменных, а также в элементах управления очередностью. Variables, variable mappings, and precedence constraints also use expressions, which can include string comparisons. Дополнительные сведения о выражениях см. в разделе Выражения служб Integration Services (SSIS). For more information about expressions, see Integration Services (SSIS) Expressions.

Обработка в ходе сравнения строк Processing during String Comparison

В зависимости от характера данных и конфигурации преобразования при сравнении строковых данных может происходить следующая обработка: Depending on the data and the configuration of the transformation, the following processing may occur during the comparison of string data:

Преобразование данных в Юникод. Converting data to Unicode. Если в источнике данных не использована кодировка Юникод, то данные автоматически преобразуются в Юникод до начала сравнения. If the source data is not already Unicode, the data is automatically converted to Unicode before the comparison occurs.

Использование локаля для применения правил конкретных локалей при интерпретации даты, времени, десятичных данных и порядка сортировки. Using locale to apply locale-specific rules for interpreting date, time, decimal data, and sort order.

Применение параметров сравнения на уровне столбца для изменения чувствительности сравнений. Applying comparison options at the column level to change the sensitivity of comparisons.

Преобразование строковых данных в Юникод Converting String Data to Unicode

В зависимости от операций, которые выполняет преобразование, и конфигурации преобразования строковые данные могут преобразовываться в тип данных DT_WSTR, посредством которого строковые символы представляются в формате Юникод. Depending on the operations that the transformation performs and the configuration of the transformation, string data may be converted to the DT_WSTR data type, which is a Unicode representation of string characters.

Строковые данные, имеющие тип данных DT_STR, преобразуются в Юникод с использованием кодовой страницы столбца. String data that has the DT_STR data type is converted to Unicode using the code page of the column. Службы Integration Services Integration Services поддерживают кодовые страницы на уровне столбцов; каждый столбец может быть преобразован с использованием отдельной кодовой страницы. supports code pages at the column level, and each column can be converted by using a different code page.

Читайте также:  Сравнение символов двух строк

Обычно службы Службы Integration Services Integration Services могут самостоятельно определить правильную кодовую страницу по источнику данных. In most cases, Службы Integration Services Integration Services can identify the correct code page from the data source. Например, в SQL Server SQL Server можно настроить параметры сортировки для уровня базы данных и уровня столбца. For example, in SQL Server SQL Server you can set a collation at the database and column levels. Кодовая страница является производной от параметров сортировки SQL Server SQL Server , которые могут быть либо параметрами сортировки Windows, либо параметрами сортировки SQL. The code page is derived from a SQL Server SQL Server collation, which can be either a Windows or an SQL collation.

Если службы Службы Integration Services Integration Services выдают непредвиденную кодовую таблицу или если пакет подключается к источнику данных с помощью поставщика, который не предоставил данных для определения правильной кодовой страницы, то можно указать кодовую страницу по умолчанию в источнике и назначении OLE DB. If Службы Integration Services Integration Services provides an unexpected code page, or if the package accesses a data source by using a provider that does not supply sufficient information to determine the correct code page, you can specify a default code page in the OLE DB source and the OLE DB destination. Кодовая страница по умолчанию используется вместо кодовых страниц, указанных в службах Службы Integration Services Integration Services . The default code pages are used instead of the code pages that Службы Integration Services Integration Services provides.

У файлов нет кодовых страниц. Files do not have code pages. Вместо этого в диспетчере соединений одного или нескольких неструктурированных файлов, с помощью которого пакет подключается к данным в файле, предусмотрено свойство, указывающее кодовую страницу для файла. Instead, the Flat File and the Multiple Flat Files connection managers that a package uses to connect to file data include a property for specifying the code page of the file. Кодовую страницу можно задавать только на уровне файла, но не на уровне столбца. The code page can be set at the file level only, not at the column level.

Настройка локалей Setting Locale

Службы Integration Services Integration Services не применяют кодовые страницы при определении правил, зависящих от языкового стандарта, для сортировки данных или интерпретации даты, времени и десятичных данных. does not use the code page to infer locale-specific rules for sorting data or interpreting date, time, and decimal data. Вместо этого преобразование считывает языковой стандарт, заданный в свойстве LocaleId компонента потока данных, задачи потока данных, контейнера или пакета. Instead, the transformation reads the locale that is set by the LocaleId property on the data flow component, Data Flow task, container, or package. По умолчанию локаль преобразования наследуется от задачи потока данных, которая в свою очередь наследует его от пакета. By default, the locale of a transformation is inherited from its Data Flow task, which in turn inherits from the package. Если задача потока данных находится в контейнере, например в контейнере «цикл по элементам», то она наследует локаль от контейнера. If the Data Flow task is in a container such as the For Loop container, it inherits its locale from the container.

Кроме того, можно указывать локаль для диспетчеров соединений с одним или несколькими неструктурированными файлами. You can also specify a locale for a Flat File connection manager and a Multiple Flat Files connection manager.

Настройка параметров сравнения Setting Comparison Options

Локаль содержит основные правила сравнения строковых данных. The locale provides the basic rules for comparing string data. Например, локаль определяет положение сортировки каждой буквы в алфавите. For example, the locale specifies the sort position of each letter in the alphabet. Тем не менее этих правил может быть недостаточно для сравнений, выполняемых некоторыми преобразованиями, и службы Службы Integration Services Integration Services поддерживают набор расширенных параметров сравнения, которых нет среди основных правил локали. However, these rules may not be sufficient for the comparisons that some transformations perform, and Службы Integration Services Integration Services supports a set of advanced comparison options that go beyond the comparison rules of a locale. Эти параметры сравнения задаются на уровне столбца. These comparison options are set at the column level. Например, один из параметров сравнения позволяет игнорировать непробельные символы. For example, one of the comparison options lets you ignore nonspacing characters. Он позволяет не учитывать при сравнении диакритические знаки, в результате чего символы a и á при сравнении будут обрабатываться как идентичные. The effect of this option is to ignore diacritics such as the accent, which makes «a» and «Ã¡» identical for comparison purposes.

Читайте также:  Сравнение методов анализа ассортимента

В приведенной ниже таблице описаны параметры сравнения и стиль сортировки. The following table describes the comparison options and a sort style.

Параметр сравнения Comparison option Описание Description
Игнорировать регистр Ignore case Указывает, следует ли при сравнении различать символы в верхнем и нижнем регистре. Specifies whether the comparison distinguishes between uppercase and lowercase letters. Если параметр задан, то строковое сравнение игнорирует регистр. If this option is set, the string comparison ignores case. Например, «ABC» при сравнении не отличается от «abc». For example, «ABC» becomes the same as «abc».
Игнорируется тип японской азбуки Ignore kana type Указывает, следует ли различать при сравнении два типа символов японской азбуки: хирагана и катакана. Specifies whether the comparison distinguishes between the two types of Japanese kana characters: hiragana and katakana. Если параметр задан, то строковое сравнение игнорирует тип японской азбуки. If this option is set, the string comparison ignores kana type.
Игнорировать ширину символа Ignore character width Указывает, следует ли при сравнении различать однобайтовые символы или аналогичные двухбайтовые символы. Specifies whether the comparison distinguishes between a single-byte character and the same character when it is represented as a double-byte character. Если параметр задан, то строковое сравнение рассматривает однобайтовое и двухбайтовое представления символа как один и тот же символ. If this option is set, the string comparison treats single-byte and double-byte representations of the same character as identical.
Игнорировать непробельные символы Ignore nonspacing characters Указывает, следует ли при сравнении различать обычные символы и символы с диакритическими знаками. Specifies whether the comparison distinguishes between spacing characters and diacritics. Если параметр задан, то строковое сравнение не учитывает диакритические знаки. If this option is set, the comparison ignores diacritics. Например, «Ã¥» будет считаться обычным символом «a». For example, «Ã¥» is equal to «a».
Не учитывать символы Ignore symbols Указывает, следует ли различать буквенные символы и такие символы, как пробелы, знаки пунктуации, знаки валют, а также математические символы. Specifies whether the comparison distinguishes between letter characters and symbols such as white-space characters, punctuation, currency symbols, and mathematical symbols. Если параметр задан, то строковое сравнение игнорирует символы. If this option is set, the string comparison ignores symbols. Например, « Москва» не отличается от «Москва», а «*ABC» не отличается от «ABC’». For example, » New York» becomes the same as «New York» and «*ABC» is the same as «ABC»‘.
Сортировать знаки пунктуации как символы Sort punctuation as symbols Указывает, следует ли располагать все знаки пунктуации, кроме дефиса и апострофа, перед буквенно-цифровыми символами. Specifies whether the comparison sorts all punctuation symbols, except the hyphen and apostrophe, before the alphanumeric characters. Например, если параметр задан, то «.ABC» оказывается перед «ABC». For example, if this option is set, «.ABC» sorts before «ABC».

Для сравнения данных эти параметры используют преобразования «Сортировка», «Выполнение статистического вычисления», «Нечеткое группирование» и «Нечеткий уточняющий запрос». The Sort, Aggregate, Fuzzy Grouping and Fuzzy Lookup transformations include these options for comparing data.

Флаг сравнения FullySensitive отображается в диалоговом окне Расширенный редактор для преобразований «Нечеткое группирование» и «Нечеткий уточняющий запрос». The FullySensitive comparison flag displays in the Advanced Editor dialog box for the Fuzzy Grouping and Fuzzy Lookup transformations. Если установлен флаг сравнения FullySensitive , то применяются все параметры сравнения. Selecting the FullySensitive comparison flag means that all the comparison options apply.

Источник

Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

Базы данных

SQL операторы сравнения

В этом учебном материале по SQL рассматриваются все операторы сравнения, используемые в SQL для проверки на равенство и неравенство, а также более сложные операторы.

Описание

Операторы сравнения используются в предложении WHERE, чтобы определить, какие записи выбрать. Вот список операторов сравнения, которые вы можете использовать в SQL:

Операторы сравнения Описание
= Равно
<> Не равно
!= Не равно
> Больше чем
>= Больше или равно
% и _
EXISTS Условие выполнено, если подзапрос возвращает хотя бы одну строку

Пример — оператор равенства

В SQL вы можете использовать оператор = для проверки на равенство в запросе.

В этом примере у нас есть таблица с suppliers со следующими данными:

supplier_id supplier_name city state
100 Yandex Moscow Moscow
200 Google Lansing Michigan
300 Oracle Redwood City California
400 Bing Redmond Washington
500 Yahoo Sunnyvale Washington
600 DuckDuckGo Paoli Pennsylvania
700 Qwant Paris Ile de France
800 Facebook Menlo Park California
900 Electronic Arts San Francisco California

Введите следующий SQL оператор:

supplier_id supplier_name city state
100 Yandex Moscow Moscow

Будет выбрана 1 запись. Вот результаты, которые вы должны получить:

В этом примере приведенный выше оператор SELECT возвращает все строки из таблицы suppliers , где supplier_name равно Yandex.

Пример — оператор неравенства

В SQL есть два способа проверить неравенство в запросе. Вы можете использовать оператор <> или != . Оба вернут одинаковые результаты.
Давайте использовать ту же таблицу suppliers , что и в предыдущем примере.

supplier_id supplier_name city state
100 Yandex Moscow Moscow
200 Google Lansing Michigan
300 Oracle Redwood City California
400 Bing Redmond Washington
500 Yahoo Sunnyvale Washington
600 DuckDuckGo Paoli Pennsylvania
700 Qwant Paris Ile de France
800 Facebook Menlo Park California
900 Electronic Arts San Francisco California

Выполните следующий SQL оператор, чтобы проверить неравенство, используя оператор <> :

Или введите следующий SQL оператор, чтобы использовать оператор != :

Будет выбрано 8 записей. Вот результаты, которые вы должны получить с помощью одного из операторов SQL:

supplier_id supplier_name city state
200 Google Lansing Michigan
300 Oracle Redwood City California
400 Bing Redmond Washington
500 Yahoo Sunnyvale Washington
600 DuckDuckGo Paoli Pennsylvania
700 Qwant Paris Ile de France
800 Facebook Menlo Park California
900 Electronic Arts San Francisco California

В этом примере оба оператора SELECT будут возвращать все строки из таблицы suppliers , где supplier_name не равно Yandex.

Пример — оператор больше чем

Вы можете использовать оператор > в SQL для проверки выражения больше чем.
В этом примере у нас есть таблица customers со следующими данными:

В этом примере у нас есть таблица customers со следующими данными:

Источник

Операторы сравнения (Transact-SQL) Comparison Operators (Transact-SQL)

Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions) Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions)

Операторы сравнения позволяют проверить, одинаковы ли два выражения. Comparison operators test whether two expressions are the same. Операторы сравнения можно применять ко всем выражениям, за исключением выражений типов text, ntext и image. Comparison operators can be used on all expressions except expressions of the text, ntext, or image data types. Операторы сравнения Transact-SQL Transact-SQL приведены в следующей таблице: The following table lists the Transact-SQL Transact-SQL comparison operators.

Оператор Operator Значение Meaning
= (равно) = (Equals) Равно Equal to
> (больше) > (Greater Than) Больше Greater than
Меньше чем Less than
>= (больше или равно) >= (Greater Than or Equal To) Больше или равно Greater than or equal to
Меньше или равно Less than or equal to
<> (не равно) <> (Not Equal To) Не равно Not equal to
!= (не равно) != (Not Equal To) Не равно (не определено стандартом ISO) Not equal to (not ISO standard)
! ! Не меньше (не определено стандартом ISO) Not less than (not ISO standard)
!> (не больше чем) !> (Not Greater Than) Не больше (не определено стандартом ISO) Not greater than (not ISO standard)

Логический тип данных Boolean Data Type

Результат выполнения оператора сравнения имеет тип данных Boolean. The result of a comparison operator has the Boolean data type. Он имеет три значения: TRUE, FALSE и UNKNOWN. This has three values: TRUE, FALSE, and UNKNOWN. Выражения, возвращающие значения типа Boolean, называются логическими. Expressions that return a Boolean data type are known as Boolean expressions.

В отличие от других типов данных SQL Server SQL Server , тип Boolean не может быть типом столбца таблицы или переменной и не может быть возвращен в результирующем наборе. Unlike other SQL Server SQL Server data types, a Boolean data type cannot be specified as the data type of a table column or variable, and cannot be returned in a result set.

Если параметр SET ANSI_NULLS имеет значение ON, оператор, в число операндов которого входит хотя бы одно выражение NULL, возвращает UNKNOWN. When SET ANSI_NULLS is ON, an operator that has one or two NULL expressions returns UNKNOWN. Если параметр SET ANSI_NULLS имеет значение OFF, применяются те же правила, за исключением операторов равенства (=) и неравенства (<>). When SET ANSI_NULLS is OFF, the same rules apply, except for the equals (=) and not equals (<>) operators. Если параметр SET ANSI_NULLS имеет значение OFF, эти операторы обрабатывают значение NULL как известное значение, эквивалентное любым другим значениям NULL, и возвращают только значение TRUE или FALSE (и никогда UNKNOWN). When SET ANSI_NULLS is OFF, these operators treat NULL as a known value, equivalent to any other NULL, and only return TRUE or FALSE (never UNKNOWN).

Выражения со значениями типа Boolean используются в предложении WHERE для фильтрации строк, удовлетворяющих условиям поиска, и в инструкциях языка управления потоком, таких как IF и WHILE, например: Expressions with Boolean data types are used in the WHERE clause to filter the rows that qualify for the search conditions and in control-of-flow language statements such as IF and WHILE, for example:

Источник