반응형
테이블에 행이 있는지 여부 확인 SQL Server 2005
테이블에 행이 포함되어 있는지 확인하는 방법 SQL Server 2005?
무슨 목적을 위해?
- IF에 대한 가장 빠른 것은
IF EXISTS (SELECT * FROM Table)...
- 결과 집합의
SELECT TOP 1 1 FROM Table
경우 0 개 또는 1 개의 행을 반환합니다. - 개수 (0 또는 0이 아님)가있는 정확히 하나의 행에 대해
SELECT COUNT(*) FROM Table
또한 사용할 수 있습니다
select case when exists (select 1 from table)
then 'contains rows'
else 'doesnt contain rows'
end
또는 특정 레코드에 대한 하위 행이 있는지 확인하려면 다음을 수행하십시오.
select * from Table t1
where exists(
select 1 from ChildTable t2
where t1.id = t2.parentid)
또는 절차에서
if exists(select 1 from table)
begin
-- do stuff
end
기타처럼 다음과 같이 사용할 수 있습니다.
IF NOT EXISTS (SELECT 1 FROM Table)
BEGIN
--Do Something
END
ELSE
BEGIN
--Do Another Thing
END
최상의 성능을 위해 * 대신 특정 열 이름을 사용하십시오. 예를 들면 다음과 같습니다.
SELECT TOP 1 <columnName>
FROM <tableName>
이것은 전체 열 목록을 반환하는 대신 하나만 반환하기 때문에 최적입니다. 시간을 절약 할 수 있습니다.
또한 값이있는 경우 첫 번째 행만 반환하면 더 빨라집니다. 실제로 결과로 하나의 값만 얻었습니다. 행이 있으면 값이없고 행이 없으면 값이 없습니다.
분산 방식으로 테이블을 사용하는 경우, 서버에서 클라이언트로 하나의 값만 전송하는 것보다 훨씬 빠릅니다.
또한 가능한 한 적은 리소스를 사용할 수있는 열에서 데이터를 가져 오려면 모든 열 중에서 현명하게 선택해야합니다.
select count(*) from table
(또는 속도가 중요한 경우 * 대신 인덱싱 된 열)을 사용하여 행을 계산할 수 없습니까?
그렇지 않다면 이 기사 가 올바른 방향을 제시 할 수 있습니다.
빠른:
SELECT TOP (1) CASE
WHEN **NOT_NULL_COLUMN** IS NULL
THEN 'empty table'
ELSE 'not empty table'
END AS info
FROM **TABLE_NAME**
반응형
'IT박스' 카테고리의 다른 글
정규 표현식에 ":"( "콜론")을 입력하는 방법은 무엇입니까? (0) | 2020.12.08 |
---|---|
git reset --hard HEAD ^ 후 추가 된 파일 복구 (0) | 2020.12.07 |
Javascript로 CKEditor에서 값을 어떻게 설정합니까? (0) | 2020.12.07 |
Python MySQLdb 문제 (TypeError : % d 형식 : str이 아닌 숫자가 필요함) (0) | 2020.12.07 |
Git을 사용하면 무단계 변경으로 분기 변경 가능 (0) | 2020.12.07 |