我有一个包含 99 列和 rowid 的表:
[RowID] [int] NOT NULL,
[Col1] [nvarchar](max) NULL,
[Col2] [nvarchar](max) NULL,
[Col3] [nvarchar](max) NULL,
[Col4] [nvarchar](max) NULL,
.......
[Col99] [nvarchar](max) NULL
我需要一个可在 Micrsoft SQL Server 视图中使用的函数(必须是视图且视图中没有变量)来搜索唯一字符串,然后在视图中显示为新字段。我目前的方法是使用 case 语句搜索每一列,直到找到唯一的字符串。这种方法写起来很麻烦(效率低下),我有几个唯一的字符串要搜索。
SELECT RowID, COALESCE (
CASE WHEN Col1 LIKE '%UniqueString%' THEN Col1 ELSE NULL END,
CASE WHEN Col2 LIKE '%UniqueString%' THEN Col2 ELSE NULL END,
CASE WHEN Col3 LIKE '%UniqueString%' THEN Col3 ELSE NULL END,
CASE WHEN Col4 LIKE '%UniqueString%' THEN Col4 ELSE NULL END,
CASE WHEN Col5 LIKE '%UniqueString%' THEN Col5 ELSE NULL END,
CASE WHEN Col6 LIKE '%UniqueString%' THEN Col6 ELSE NULL END,
………..
CASE WHEN Col99 LIKE '%UniqueString%' THEN Col99 ELSE NULL END) AS [UniequeString]
FROM dbo.TABLE_A
最终视图应具有以下结果: