【发布时间】:2014-03-08 14:25:50
【问题描述】:
MS SQL Server Input Column 1 Cat 1 包含多个用空格分隔的值,Cat2 包含要比较的值。如果 Cat2 值与 Cat1 中的任何一个值匹配,则所需的输出列应为 1,如果不匹配,则应为 0。分隔符是一个空格。类似 -- answer = 1 if Cat1=In (cat2) 后用逗号替换空格,但我不明白完成此操作的语法。谁能帮我解决这个问题。提前致谢。
DECLARE @TABLE TABLE(Cat1 VARCHAR(50),Cat2 VARCHAR(50), answer VARCHAR(50))
INSERT INTO @TABLE VALUES
('3 4 6 36 a b','36','1'),
('5 4 6 36 a b','3','0'),
('7 5 6 46 a b','4','0'),
('7 5 6 46 a b','5','1'),
('3 4 6 36 a b','7','0')
select cat1, cat2 , answer
FROM @TABLE
去
Cat1 Cat2 output
3 4 6 36 a b 36 1
3 4 6 36 a b 3 1
3 4 6 36 a b 4 1
3 4 6 36 a b 7 0
开发
【问题讨论】:
-
抱歉 - 表格的格式搞砸了。
-
样本数据缺少 Cat1 = "8 4 6 36 a b"、Cat2 = "3" 和 OUTPUT = "0" 的测试用例。解决方案不应允许仅“3”匹配“36”中的“3”的情况,这不是有效匹配。
标签: sql-server string compare