Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 检查列值是否包含在另一列中_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql 检查列值是否包含在另一列中

Sql 检查列值是否包含在另一列中,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我在SQL中有一个名为Host的表,如下所示 **FirstName** **LastName** Krishna Krishna Murthy Jithendra Jithendra Reddy Varun Varun Kumar Mahendra Varma 如果firstname列是LastName列的一部分,我需要再创建一个值为yes/No的列。 输出应如下所示 **FirstName** **Las

我在SQL中有一个名为Host的表,如下所示

**FirstName**   **LastName**
 Krishna          Krishna Murthy
 Jithendra        Jithendra Reddy
 Varun            Varun Kumar
 Mahendra         Varma
如果firstname列是LastName列的一部分,我需要再创建一个值为yes/No的列。 输出应如下所示

**FirstName**   **LastName**        **Subset**
 Krishna          Krishna Murthy      Yes
 Jithendra        Jithendra Reddy     Yes
 Varun            Varun Kumar         Yes
 Mahendra         Varma               No

有什么想法吗?

你可以像这样使用
。在标准SQL中,这看起来像:

select h.*,
       (case when h.lastname like concat('%', h.firstname, '%')
             then 'yes' else 'no'
        end) as flag
from host h;

请注意,大多数数据库都支持字符串串联运算符,例如
|
+

将列添加到表中。使用下面的
UPDATE
语句填写现有记录,不区分大小写

UPDATE host
SET subset = CASE WHEN instr(lower(surname), lower(forename)) > 0 THEN 'Yes' ELSE 'No' END
/
你可以用

SELECT FirstName, LastName, 
    CASE WHEN LastName LIKE '%' + FirstName + '%' 
    THEN 'Yes' ELSE 'No' 
    END AS Flag
FROM host
为了得到你想要的结果

如果您只想搜索名称重复的情况,可能需要将大小写调整为
LastName LIKE FirstName+'%'
,以确保它只匹配至少有两个单词的情况,并且第一个单词在FirstName中,例如

**FirstName**   **LastName**        **Subset**
Bob             Bobbins             No
SingleName      SingleName          No
AAA             BBB AAA             No

我删除了无关的数据库标签。请随意标记您实际使用的数据库。我收到一个错误,好像Concat不是内置函数。我正在使用sql2008@krishna . . . 然后应该使用适当的方法在数据库中进行连接。当我回答这个问题时,它没有数据库标签。非常感谢你……理查德。