2011-01-30 5 views
3

sql/sqlite3에서는 열이 존재하지 않지만 다른 열의 계산 된 결과를 선택할 수 있습니까?다른 기존 열에서 계산 된 '가상'열을 선택하십시오.

열 최대 전류와 테이블을 감안할 때, 나는의 디퍼 런스 세라마이드에 선택을 수행하고 싶습니다 내가 가진 그렇다면 둘 사이 : 여기

table_data: 
max|current 
10|3 
12|8 

select ???? from table_data order by ????? asc; 

desired result: 
4 
7 

sqlite3를 문법 http://www.sqlite.org/lang_expr.html 만의 이해 못할

+0

내가 SELECT *하는 가상 컬럼을 추가하는 방법을 물어 보곤 FirstSQL J.에서 SQL tutorial 한 번 봐 걸릴 수 있습니다. 와우'SELECT *, "1"은 "im"으로 작동합니다! 덕분에 – Val

답변

3
select `max` - `current` as `result` from table_data order by `result` asc 
+0

. prob는 OMG Ponies 클리너 구문을 사용하지만이 복사본은 붙여 넣기로 시도 할 수 있습니다. – hanlonj

1

이것이 일회성이 아니라면, 당신은 아마도 더 나은 시각을 가지고있을 것입니다.

create view yourtable_diffs as 
select max, current, max - current as diff from yourtable; 

은 그럼 그냥

select diff from yourtable_diffs order by diff; 

당신은

+0

이 모양이 좋을 것입니다. yourtable_diffs가 지속되고 값이 자동으로 계산됩니까? 이점은 무엇보다 깨끗한 쿼리입니까? yourtable_diffs와 table_data의 조합에서 열을 선택하려면 어떻게해야합니까? – hanlonj

+1

예,보기가 유지됩니다. 계산은 자동으로 수행됩니다. 이점은 계산이 한 번 작성되고 올바른 것으로 입증되어 개발자가 만족할 수있는 사람에게 제공된다는 것입니다. 필요한 때마다 계산을 다시 작성하는 것이 더 안정적입니다. 계산이 매우 간단하기 때문에 여기서는 많은 이점이 없지만 여러 테이블이 포함 된 계산은 임의로 복잡 할 수 있습니다. 테이블과 뷰에서 동시에 열을 선택할 수 있습니다. 위의 편집을 참조하십시오. –

관련 문제