Tuesday, November 5, 2019

How to find leading and trailing spaces in a column

SQL> set lines 100
SQL> set pages 50
SQL> DROP TABLE MYTABLE;

Table dropped.

SQL> CREATE TABLE MYTABLE(MYCOL VARCHAR2(20));

Table created.

SQL> INSERT INTO MYTABLE VALUES('nospace');

1 row created.

SQL> INSERT INTO MYTABLE VALUES(' leading');

1 row created.

SQL> INSERT INTO MYTABLE VALUES('trailing ');

1 row created.

SQL> INSERT INTO MYTABLE VALUES(' both ');

1 row created.

SQL> COMMIT;

Commit complete.

SQL> SELECT * FROM MYTABLE;

MYCOL
--------------------
nospace
 leading
trailing
 both

SQL> SELECT MYCOL FROM MYTABLE WHERE SUBSTR(MYCOL,1,1) = ' ' OR SUBSTR(MYCOL,-1,1) = ' ';

MYCOL
--------------------
 leading
trailing
 both

SQL> SELECT MYCOL FROM MYTABLE WHERE MYCOL LIKE ' %' OR MYCOL LIKE '% ';

MYCOL
--------------------
 leading
trailing
 both

SQL> SELECT MYCOL FROM MYTABLE WHERE REGEXP_LIKE(MYCOL,'(^ | $)');

MYCOL
--------------------
 leading
trailing
 both

SQL> SELECT MYCOL FROM MYTABLE WHERE REGEXP_LIKE(MYCOL,'([:space:]|[:space:]$)');

MYCOL
--------------------
nospace
 leading
trailing

SQL>

No comments:

Post a Comment