我有两个不同的字符串列,我想检查另一个是否包含在另一个字符串中,并创建第三列,其值为1或0(如果column2包含第1列则为1,否则为0) 例如:
Column1 Column2 Column3
Spar I am Sparta 1
How are you Sparta 0
如何在SQL中进行此字符串比较?
答案 0 :(得分:1)
您可以使用charindex功能。假设您只想检查colum1
中是否包含column2
:
SELECT CASE WHEN CHARINDEX(column1, column2) > 0
THEN 1
ELSE 0
END AS column3
FROM mytable
如果您需要检查两种方式,只需添加另一个电话:
SELECT CASE WHEN CHARINDEX(column1, column2) > 0 OR
CHARINDEX(column2, column1) > 0
THEN 1
ELSE 0
END AS column3
FROM mytable
答案 1 :(得分:0)
试试这个:
WITH temp(col1, col2) AS(
SELECT 'Spar', 'I am Sparta' UNION ALL
SELECT 'How are you', 'Sparta'
)
SELECT
*,
col3 =
CASE
WHEN col1 like '%' + col2 + '%' or col2 like '%' + col1 + '%' THEN 1
ELSE 0
END
FROM temp
答案 2 :(得分:0)
应该有效
select column1,column2, (case when column2 like '%' + column1 + '%' then 1 else 0 end) as column3 FROM yourtable
答案 3 :(得分:0)
试试这个
DECLARE @table1 TABLE
(
Column1 VARCHAR(20),
Column2 VARCHAR(20)
)
INSERT INTO @table1
VALUES ('Spar',
'I am Sparta'),
('How are you',
'Sparta')
SELECT column1,
column2,
CASE
WHEN CHARINDEX(column1, column2) > 0
OR CHARINDEX(column1, column2) > 0 THEN 1
ELSE 0
END AS column3
FROM @table1