다른 열의 값에 따라 테이블에 열을 포함 할 수 있습니까 (보기가 아님) (예 : SQL SERVER 2008). 즉 "DUEDATE"라는 열을 가질 수 있습니까? "DUEDATE"가> GetDate() 인 경우 상태를 "Now Due"로 변경하는 "STATUS"라는 열이 있습니까? 그렇다면 어떻게 그것을 테이블에 추가합니까?테이블의 CASE 문 사용
0
A
답변
0
예, 당신은 계산 열 생성 할 수 있습니다 :이 비 결정적 열이에 추가 (때문에 때마다 테이블을 사용하는 다른 GETDATE()
의 가치)이므로
CREATE TABLE [dbo].[SampleTable](
[DueDate] [date] NULL,
[ComputedValue] AS (CASE WHEN [Duedate] > GETDATE() THEN 'Now Due' ELSE '' END)
) ON [PRIMARY]
을 테이블은 선택 쿼리에서 동일한 값을 반환하는 것보다 많은 이점을 제공하지 않습니다.
0
당신은 테이블을 변경하고 계산 된 열을 추가 할 수 있습니다 : 그것은 비 결정적이기 때문에
ALTER TABLE dbo.TheTable
ADD Status AS CASE WHEN ...
당신은 그것을 지속 할 수 없으므로 PERSISTED를 추가하거나에 인덱스를 넣어하려고하지 않습니다.
인덱스 관점에서 WHERE Status = 'whatever'을 사용하여 쿼리하지 마십시오. 테이블의 모든 행을 고려해야하기 때문에. 대신 DueDate 및 WHERE DueDate에 대한 인덱스를 사용하십시오. < = GETDATE()
관련 문제
- 1. 변경 테이블의 Case 문 오류
- 2. IN 절에서 CASE 문 사용
- 3. 문자열 내 case 문 사용
- 4. CASE 문
- 5. MySQL - 저장 프로 시저 - Case 문 내부에서 Case 식 사용?
- 6. 이 SELECT 문 (사용 CASE) 여기
- 7. THEN 표현식에서 CASE 문 값 사용
- 8. SQL의 LEFT OUTER JOIN에서 CASE 문 사용
- 9. 사용 방법 Case 문 내부의 조건?
- 10. select 문 내에서 case 문에서 변수 사용
- 11. MySQL의 Case 문 내에서 합계 사용
- 12. select 쿼리에서 여러 case 문 사용
- 13. update 절 내 Case 문 사용 - Sybase
- 14. switch case 문 내에서 DatePart 사용
- 15. 검색된 CASE 식으로 SELECT 문 사용
- 16. Oracle CASE 문 내에서 REPLACE 사용
- 17. SSRS - SQL에서 case 문 사용 아래 절
- 18. case 문 레이블에서 함수 호출 사용
- 19. SQL 서버에서 SUM 함수가있는 CASE 문 사용
- 20. case 문 내부 If 문
- 21. 여러 case 문 합
- 22. CASE 문 당량 만약 그렇지-IF이 SQL의 CASE 문
- 23. 엑셀 VBA : Case 문
- 24. bash의 동적 case 문
- 25. .cs.aspx의 ASP case 문
- 26. in 절이있는 case 문
- 27. SQL Server의 CASE 문
- 28. 어떻게 절 CASE 문
- 29. CASE 문 결과 추가
- 30. Hibernate에서 case 문 작성하기
모범 사례에서는 다른 테이블에서 파생 될 수있는 열을 보관하지 마십시오. – Miller
나는 이해하지만, 그렇게하기 위해 뷰를 만들었지 만, 뷰에 LEFT JOINED 테이블을 추가하면 전체 쿼리가 너무 느려진다. –
뷰에 LEFT JOINED 테이블을 추가해야하는 이유는 무엇입니까? 기본 테이블의 모든 열을 포함하는보기를 만들고 아래의 내 대답과 같이 CASE 문을 추가하십시오. – Dan