지난 달 동안의 횟수 쿼리에서 반환 된 모든 열에 'null'필드를 '0'으로 대체해야했습니다. 기본적으로isnull을 모든 컬럼에 적용하는 더 좋은 방법이 있습니까?
select ', isnull(' + COLUMN_NAME + ', 0)' + ' as ' + COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'summary_by_scca_sales_category '
and TABLE_SCHEMA = 'property''
:
는 (이들 중 일부는 열을 높은 숫자를 반환하는) 나는 다음 다음 새 쿼리에 해당 열에 대한 결과를 붙여 사용하고 많은 시간을 저장합니다 내가 할 수있는 더 좋은 방법이 있는지 궁금하네요? 이상적인 방법은 두 개의 쿼리를 사용하지 않고 쿼리에서 반환되는 모든 열에 isnull을 자동으로 적용 할 수있는 방법입니다. 예를 들어:
내가 같은 쿼리 먹고 싶어 :
select *
from tablename
을 그리고 *에 의해 반환 된 모든 컬럼에 대해 각 열에 대한 ISNULL() 라인을 작성하지 않고도 0으로 널 (null) 결과를 교체 .
편집는 :
은 뷰 (DOH, 그 생각해야)와 함께이 작업을 수행 할 것이다. 관심사/교육을 위해서도 이와 같은 코드를 사용하는 방법이 있습니까?
는'경우 null' _should_ 실제로'데이터의 0' 수 : 유형의 문제에주의 (당신은 모든 그래서 모든 열이 적당한 숫자 유형입니다 가정 0 버리는한다 진술) 테이블을'null'을'0'으로 대체하고 not-null 컬럼을'0'의 기본값으로 만드시겠습니까? 그러면 모든 '선택'에서 확인하지 않아도됩니다. – David
나는 그것을 좋아하지 만 그것을 강요했지만 불행하게도 나는 그렇게 할 수있는 위치에 있지도 않았고 그렇게 할 수 없었습니다. (dba는 여러 다른 시스템에 관련된 회귀 테스트가 – Codingo
숫자 필드 유형에 대해서만 의미가 있습니다. 스크립트로 생성 한 뷰를 생성하지 않으려면 null 처리 결과를 원하면 view_tablename에서 select *를 수행하십시오. – rene