我想檢查是否某列有這樣的:檢查一組值被包含在一個列在SQL Server
SELECT Id,
CASE CHARINDEX(Name,'Value A') WHEN 0 THEN '0'
ELSE '1'
END
FROM TABLE
這適用於測試Value A
;現在我想檢查多個值。例如,我想檢查Name
是否與Value A
,Value B
,Value C
中的任何一個匹配。 CHARINDEX
一次只允許一個。
有一種方法可以做到這一點?
我想檢查是否某列有這樣的:檢查一組值被包含在一個列在SQL Server
SELECT Id,
CASE CHARINDEX(Name,'Value A') WHEN 0 THEN '0'
ELSE '1'
END
FROM TABLE
這適用於測試Value A
;現在我想檢查多個值。例如,我想檢查Name
是否與Value A
,Value B
,Value C
中的任何一個匹配。 CHARINDEX
一次只允許一個。
有一種方法可以做到這一點?
SELECT id,
iif (Name LIKE '%Value A%' OR Name LIKE '%Value B%', 1, 0) AS IsContainsTheValue
FROM Table;
這假設值是靜態的,這似乎是你的問題的情況。
編輯完全匹配
Declare @matchValues Table (Value varchar(100));
-- maybe you could pass a table from the application??
SELECT id,
iif (v.Value Is Not Null, 1, 0) AS IsContainsTheValue
FROM Table AS t
LEFT JOIN @matchValues AS v On t.Name = v.Value;
你想要的任何那些在所有這些的? – mendosi
我忘了提及我不能使用包含也。 – Mendes
[tag:SQL-server]的哪個版本? – mendosi