如果另一列包含字符串,则更新列

时间:2011-09-29 20:11:47

标签: sql sql-server-2008-r2

我有一个包含三列的表。

column1        column2     column3 
mytestdata     test 
myotherdata    test 

如果column1包含column2中的值

,我想将'somestring'插入column3

结果如下:

column1        column2     column3 
mytestdata     test        'somestring' 
myotherdata    test 

4 个答案:

答案 0 :(得分:4)

SQL Server:

UPDATE myTable
   SET column3 = 'somestring'
 WHERE column1 LIKE '%' + column2 + '%'

答案 1 :(得分:3)

SQL Server:

UPDATE theTable SET column3 = 'somestring' 
WHERE CHARINDEX (column2, column1) > 0

答案 2 :(得分:2)

您有多种选择,具体取决于RDBMS。

对于MySQL和Oracle:

UPDATE yourTable
set column3 = 'somestring'
where INSTR(column2, column1) > 0

对于SQL Server:

UPDATE yourTable
set column3 = 'somestring'
where CHARINDEX(column1, column2) > 0

答案 3 :(得分:0)

您可以执行以下操作

UPDATE tmp
SET
   column3 = (CASE WHEN tmp.column1 like '%' + tmp.column2 + '%' THEN 'something' ELSE tmp.column3')
FROM
    tablename tmp