MS SQL Server 2008 R2에서 데이터베이스보기를 만들고 있습니다. 'Status'라는 출력 열 중 하나는 여러 다른 테이블에서 엔티티에 대한 정보를 가져와 사용자에게보고되는 문자열 상태를 생성합니다.열이 null인지 여부 (부울 값)
따라서 유일한 매개 변수로 엔터티 ID를 사용하고 nvarchar (MAX) 상태를 반환하는 함수를 만듭니다.
첫 번째 확인은 엔티티가 승인되었는지 여부입니다. 이것은 데이터베이스를 승인 한 사람의 사용자 이름으로 데이터베이스에 저장됩니다. 승인되지 않은 경우 값은 NULL입니다.
그래서, 의사 코드는 내가하고 싶은 것은이 때문이다 :
if entity is NOT approved
return "Pending"
else
begin
max = select MAX(value) from EntityStatus // several statuses may exist
status = select name from EntityStatus WHERE value = max
return status
end
내 즉각적인 문제는 : 나는 '승인'부울을 선택하려면 어떻게합니까?
나는 T-SQL 프로그래밍에 익숙하다. (아마 보여줄 것이다.) 그래서 내 기능을 향상시킬 수있는 다른 방법을 제안하라.
당신은 주문에 의해 명시 적으로 열없이 오름차순으로 EntityStatus.Value에 의존하는 경우
시도 난 당신이 하나 필요하다고 제안 할 수 있습니다? 언젠가 시스템은 다른 상태 사이에 삽입하려는 상태가 필요할 것이고, 이는 처리하기가 매우 어려울 수 있습니다. – ErikE