有用户创建的表类型:
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 )
每次执行查询时,此表都会填充一些搜索参数。 根据列[ColumnName]中的字符串值,我应该选择其他排序规则。 因此,需要检查[ColumnName]中是否包含“ FirstName”或“ LastName”之类的值
我尝试了一些CASE和IF子句,但是没有用。
使用SQL Server 2014的系统
答案 0 :(得分:0)
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