假设我有下表:
CREATE TABLE #Pig
(
PigName VARCHAR(10),
Field1 VARCHAR(10),
Field2 VARCHAR(10),
Field3 VARCHAR(10),
Field4 VARCHAR(10),
Field5 VARCHAR(10),
Field6 VARCHAR(10),
Field7 VARCHAR(10),
Field8 VARCHAR(10),
Field9 VARCHAR(10),
Field10 VARCHAR(10),
Field11 VARCHAR(10)
)
如果我要搜索#Pig 中字符串“eg”在任何列中的所有行,我是否必须使用以下脚本,或者是否有更紧凑的方法来解决这个问题 - 也许通过TVP
?
SELECT *
FROM #Pig
WHERE Field1 LIKE '%eg%' OR
Field2 LIKE '%eg%' OR
Field3 LIKE '%eg%' OR
Field4 LIKE '%eg%' OR
Field5 LIKE '%eg%' OR
Field6 LIKE '%eg%' OR
Field7 LIKE '%eg%' OR
Field8 LIKE '%eg%' OR
Field9 LIKE '%eg%' OR
Field10 LIKE '%eg%' OR
Field11 LIKE '%eg%'
注意每个字段都是相同的数据类型,但它们实际上并没有连接......所以规范化数据不是一个解决方案。