如何在一个字符串中找到非Ascii键符号。DB2?

问题描述 投票:0回答:1

如何在一个字符串中找到非ASCII符号?(我们使用的是DB2)

我们尝试了下面的select语句,但没有成功。

SELECT columnname
FROM tablename
WHERE columnname LIKE '%[' + CHAR(127) + '-' + CHAR(255) + ']%' 
COLLATE Latin1_General_100_BIN2
db2
1个回答
0
投票

我猜你是想使用CHR()函数,而不是CHAR(),后者是一种数据类型。

如果你使用的是较新的db2版本,它有REGEXP函数,你可以尝试使用以下方法 REGEXP_LIKE() 函数。

按照samble db的例子。

 SELECT EMPNO, LASTNAME FROM EMPLOYEE  WHERE REGEXP_LIKE(LASTNAME,'[E-H]')

EMPNO  LASTNAME
------ ---------------
000010 HAAS
000020 THOMPSON
000050 GEYER
000060 STERN
000090 HENDERSON
000100 SPENSER
000110 LUCCHESSI
000120 O'CONNELL
000140 NICHOLLS
000170 YOSHIMURA
000180 SCOUTTEN
000190 WALKER
000210 JONES
000230 JEFFERSON
000250 SMITH
000260 JOHNSON
000270 PEREZ
000280 SCHNEIDER
000290 PARKER
000300 SMITH
000310 SETRIGHT
000320 MEHTA
000330 LEE
000340 GOUNOT
200010 HEMMINGER
200220 JOHN
200240 MONTEVERDE
200280 SCHWARTZ
200310 SPRINGER
200330 WONG

  30 record(s) selected.

所有被选中的名字都包含E到H的字母,由搜索模式指定。

由于我没有任何一行包含这样的范围,所以我更新了其中的一行,在其中添加了169和174字符。我更新了其中的一条记录,添加了169和174字符。

Update employee set LASTNAME = ('LEE' || chr(169) || chr(174)) WHERE LASTNAME = 'LEE'

并且,使用这个REGEXP_LIKE函数。

SELECT EMPNO, LASTNAME FROM EMPLOYEE WHERE REGEXP_LIKE(LASTNAME , '[' || CHR(127) || '-' || CHR(255) || ']')"

    EMPNO  LASTNAME
    ------ ---------------
    000330 LEE©®

      1 record(s) selected.

Regards

© www.soinside.com 2019 - 2024. All rights reserved.