Netezza字符串比较

时间:2014-05-15 15:22:04

标签: sql string netezza

我有2列字符串和字符。我的要求是比较那些2,如果第二列(char)在第一列(字符串)中可用,则答案应该是某个值(比如1)。

我尝试使用翻译,但它不起作用。

可满足上述要求的任何功能。

2 个答案:

答案 0 :(得分:1)

Netezza实现了通常的ANSI标准位置功能。

TESTDB.ADMIN(ADMIN)=> select position('BC' in 'ABCDEF');
 STRPOS
--------
      2
(1 row)

TESTDB.ADMIN(ADMIN)=> select position('BZ' in 'ABCDEF');
 STRPOS
--------
      0
(1 row)

translate函数会转换源字符串中的某些字符,因此根本不会执行您想要的操作。

TESTDB.ADMIN(ADMIN)=> select translate('ABCDE', 'BE', 'XYZ');
 TRANSLATE
-----------
 AXCDY
(1 row)

答案 1 :(得分:0)

select
    case when
            (select
                   STRPOS(
                          trim(lower('abc.com')),
                          trim(lower('xyz'))
                          )
             ) > 0
     then
            1
    else
            2
    end;

要测试此代码,请将第一个字符串替换为“abc.com”,将第二个字符串放在“xyz”处。如果你的第二个字符串出现在第一个字符串中,它将输出1,否则为2。

希望这会有所帮助。