SQL 구문 Where 에서 별명 을 판단 조건 으로 사용 합 니 다.

3566 단어 mysql
다음으로 이동:http://www.cnblogs.com/dwfbenben/archive/2013/09/07/3307941.html
출력 열 로 표현 식 을 사용 할 때 where 조건 에서 이 열 을 판단 조건 으로 직접 사용 할 수 없습니다. 
  예 를 들 어 다음 SQL 문장:
select id, (c1 + c2) as s from t1  where s > 100 
  SQL Server 오류:
 "열 이름 s 무효" 
  
  물론 
    select id, (c1 + c2) as s from t1  where (c1 + c2) > 100
  문제 없어 요. 
  그러나 표현 식 이 복잡 할 때 는 매우 번거롭다. 
  
  Where 에서 이런 이름 을 사용 할 수 있 는 방법 이 있 습 니까? 
  아니면 이런 문 제 를 해결 할 수 있 는 다른 방법 이 있 을까요? 
해결 방법:
SQL code
select t2.*
from (select id, (c1 + c2) as c from t1) t2
where c > 100
 
  --  
 
select t2.*
from (select id, c = c1+c2 from t1) t2
where c > 100

                       Where 문 구 는 열 별명 을 직접 사용 할 수 없 기 때문에 Sql 문 구 를 포장 해 야 합 니 다.                       ORACLE 에서 WHERE 자구 에서 열 별명 을 인용 하면 오류 가 발생 하 는데, 이 는 무엇 일 까요?                       SELECT 문장의 실행 순서                       1. from 구문                       2. where 구문 (결합 조건)                       3. start with 구문                       4. connect by 구문                       5. where 구문                       6. group by 구문                       7. having 구문                       8. model 구문                       9. selection 구문                       10. union, minus, intersect 등 집합 연산                       11. order by 구문
sqlserver        :
(1)FROM   JOIN  ON   
(2)WHERE 
(3)GROUP BY 
(4)HAVING 
(5)SELECT DISTINCT TOP()     
(6)ORDER BY                 

   where     ,      , order by       
  sql  where order by    ,          ,where           ,order by          ,  where      , order by        。       ,        ,       where
select * from 
(
select   1 as A,  2 as B.... from tablename
) aaa
where A=1
order by A

좋은 웹페이지 즐겨찾기