根据字段的最后一个字符在SQL中添加记录

时间:2012-01-11 14:51:50

标签: sql oracle

我在sql中有一个字段,最后包含1或0。我想要做的是,如果该字段的末尾有1但没有相应的0我想添加该记录。

3个不同的例子

字段值

  • Data1(我想添加另一条包含Data0的记录)

  • Data0(我想添加另一条包含Data1的记录)

  • Data0和Data1都存在于表中(什么都不做)

2 个答案:

答案 0 :(得分:1)

insert into test(col, another_column_1,...,another_column_n)
select substr(col,1, length(col)-1) ||   --this is the base value
        max(mod(substr(col,length(col),length(col))+1,2)) --this is the termination (0 or 1)
        as col ,
        max(another_column_1),
        ...
        max(another_column_n)
from test
where substr(col,length(col),length(col)) between '0' and '1'
group by substr(col,1, length(col)-1)
having count(*)=1;

你可以看到测试here

已更新为Oracle

答案 1 :(得分:0)

如果我正确理解了您的问题,您可以使用LIKE运算符。

您可以执行以下操作:

(field like '%1' or field like '%0') and not field like '%0%1'

但通常,SQL不适合文本处理。这个LIKE几乎是SQL中最先进的文本处理功能。