テーブル内のNULL値を持つすべての列を数えるには?行内の空の列を数える方法は?
テーブルが多数の列を持ち、メソッドが動的に列を反復処理する必要があります。
(識別子によって選択された)任意の行では、ヌルセルをカウントします。
Select count(number of null value cells) where id=1 from table
例:
私はI = 1はあなたが必要な、基本的に
テーブル内のNULL値を持つすべての列を数えるには?行内の空の列を数える方法は?
テーブルが多数の列を持ち、メソッドが動的に列を反復処理する必要があります。
(識別子によって選択された)任意の行では、ヌルセルをカウントします。
Select count(number of null value cells) where id=1 from table
例:
私はI = 1はあなたが必要な、基本的に
をidの行を持っていないどのように多くのヌル 細胞を知りたい200個の列からなるテーブルを持っています選択した行のすべての列がNULLかどうかをチェックします。
-- set up
create table t1(
rid number primary key,
c1 varchar2(17),
c2 date,
c3 timestamp,
c4 number
);
insert into t1
valueS(1, 'string', null, systimestamp, null);
commit ;
-- going to use DECODE function - doesnt require type consistency.
select 'decode('||column_name||', null, 1, 0)+' as res
from user_tab_columns
where table_name = 'T1'
結果:
RES
------------------------------
decode(RID, null, 1, 0)+
decode(C1, null, 1, 0)+
decode(C2, null, 1, 0)+
decode(C3, null, 1, 0)+
decode(C4, null, 1, 0)+
を、あなたのテーブル内の200の以上の列を持っているので、あなたはそれを少しを自動化し、user_tab_columns
を照会することにより、クエリを動的に構築することができるように は、手動のアプローチは、面倒なようです最後のクエリ:
select decode(C4, null, 1, 0)+
decode(C3, null, 1, 0)+
decode(C2, null, 1, 0)+
decode(C1, null, 1, 0)+
decode(RID, null, 1, 0) as num_of_nulls
from t1
where rid = 1
結果:
NUM_OF_NULLS
--------------
2
これを試してください。任意のIDを渡してNULL値の列数を取得できます。
CREATE TABLE TEST (ID NUMBER, B VARCHAR2(20), C NUMBER, D VARCHAR2(200));
INSERT INTO TEST VALUES (1,NULL,NULL,'XX');
SELECT COUNT(NULL_COLS)
FROM (
SELECT
to_number(extractvalue(xmltype(dbms_xmlgen.getxml('SELECT CASE WHEN '||COLUMN_NAME||' IS NULL THEN 0 ELSE NULL END COL_VAL FROM '||TABLE_NAME||' WHERE ID=&VALUE')),'/ROWSET/ROW/COL_VAL')) NULL_COLS
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME='TEST');
[私はテーブルのすべての列を一覧表示するにはどうすればよい?](の
可能な重複http://stackoverflow.com/questions/1580450/how-do-i-list-all-the-columns-in -a-table) –
これはいくつかの類似点です[特定の値(Oracle)のすべてのテーブルですべてのフィールドを検索](http://stackoverflow.com/questions/208493/search-all-fields-in-all-tables -for-a-specific-value-oracle) –
各行にヌル数をカウントするか、各列にヌル数を設定しますか? – Kacper