Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

ORACLE - Pilih Hitung pada Subquery

Anda dapat menguji setiap kolom dengan ekspresi reguler untuk menentukan apakah itu angka yang valid:

SELECT COUNT(1)
FROM   table_of_ranges
WHERE  CASE WHEN REGEXP_LIKE( RangeA, '^-?\d+(\.\d*)?$' )
            THEN TO_NUMBER( RangeA )
            ELSE NULL END
          < 10
AND    REGEXP_LIKE( RangeB, '^-?\d+(\.\d*)?$' );

Alternatif lain adalah dengan menggunakan fungsi yang ditentukan pengguna:

CREATE OR REPLACE FUNCTION test_Number (
  str VARCHAR2
) RETURN NUMBER DETERMINISTIC
AS
  invalid_number EXCEPTION;
  PRAGMA EXCEPTION_INIT(invalid_number, -6502);
BEGIN
  RETURN TO_NUMBER( str );
EXCEPTION
  WHEN invalid_number THEN
    RETURN NULL;
END test_Number;
/

Kemudian Anda dapat melakukan:

SELECT COUNT(*)
FROM   table_of_ranges
WHERE  test_number( RangeA ) <= 10
AND    test_number( RangeB ) IS NOT NULL;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa saya tidak dapat membuat pemicu pada objek yang dimiliki oleh SYS?

  2. Fungsi COS() di Oracle

  3. Oracle SQL:Gunakan urutan dalam insert dengan Select Statement

  4. Apa itu kursor di oracle

  5. Pengantar Kursor Ref PL/SQL Di Database Oracle