比较SQL数据库中的2个不同的字符串列

时间:2015-01-06 06:21:10

标签: sql sql-server string select

我有两个不同的字符串列,我想检查另一个是否包含在另一个字符串中,并创建第三列,其值为1或0(如果column2包含第1列则为1,否则为0) 例如:

Column1          Column2          Column3
Spar             I am Sparta      1
How are you      Sparta           0

如何在SQL中进行此字符串比较?

4 个答案:

答案 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