SQL Server: проверьте, существует ли конкретная строка в столбце - PullRequest
0 голосов
/ 11 декабря 2018

Существует пользовательский тип таблицы:

CREATE TYPE [dbo].[tpSearchCriteria] AS TABLE(
    [TableName] [sysname] NOT NULL,
    [ColumnName] [sysname] NOT NULL,
    [ValueString] [nvarchar](max) NULL,
    [ValueNumeric] [decimal](19, 6) NULL,
    [ValueDate] [datetimeoffset](7) NULL,
    [Operator] [nvarchar](2) NULL,
    [OperatorGroup] [smallint] NOT NULL,
    [SortDirection] [nvarchar](2) NULL )

Каждый раз, когда выполняется запрос, эта таблица заполняется некоторыми параметрами поиска.В зависимости от строковых значений в column [ColumnName] я должен был выбрать другой порядок сортировки.Таким образом, необходимо проверить в [ColumnName], содержит ли оно такие значения, как «FirstName» или «LastName»

Я пробовал с некоторыми предложениями CASE и IF, но это не работает.

Система с использованием SQL Server 2014

1 Ответ

0 голосов
/ 12 декабря 2018
select @Collation = case when exists (select 1 from @SearchCriteria where ColumnName = 'FirstName' or ColumnName = 'Surname')
                         then COALESCE(@Collation, CAST(DATABASEPROPERTYEX(DB_NAME(), 'Collation') AS nvarchar))
                   else COALESCE('SQL_Latin1_General_CP1_CI_AS', CAST(DATABASEPROPERTYEX(DB_NAME(), 'Collation') AS nvarchar))
                   end
...