문법 질문이요 0 1 1,405

by developer [2016.07.22 17:18:47]


http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all

여기서 sql 문 연습하는데요 Products Database 에서

SELECT Price > 10 as expensive FROM [Products]
Where ProductID Between 1 and 10;

지금 이렇게 쓰니까

1~10 까지  1, 0 으로 true false 이런식으로 나오는데요

1 일때 (ture) 일때만  Price 가 나오게 하거나 ProductName  나오게 어떻게 하죠?

 

그러니까 5개만 true면  5개만 Price가

20, 30 , 40 , 50 , 60  이렇게 나오도록이요

by 마농 [2016.07.22 18:14:18]

재미 있는 사이트네요. ^^
SQL 을 직접 실습해 볼 수가 있네요.


SELECT 절에 ( Price > 10 ) 과 같은 조건식을 그대로 쓸 수 있는 경우는 일반적이지 않은 경우인 듯 합니다.
DBMS 가 뭔지 궁금하네요? (일반적으로 통용되는 문법에서 약간 벗어난 듯.)
이것 저것 시도해 봤는데 ( Decode, Case, If ) 다 실패 했네요.


원하는게 혹시 5건만 출력되면 되는 거라면?
간단하게 조건식을 Where 절로 내려주시면 됩니다.

SELECT ProductID
     , ProductName
     , Price
  FROM Products
 WHERE ProductID BETWEEN 1 AND 10
   AND Price > 10
;

10건 출력 건중 5건은 자료가 보이고 5건은 공란으로 보여야 한다면?
해당 DBMS 의 문법을 좀 알아야 할 듯 하네요.
표준 문법으로 하면

SELECT ProductID
     , CASE WHEN Price > 10 THEN ProductName END AS ProductName
     , CASE WHEN Price > 10 THEN Price       END AS Price
  FROM Products
 WHERE ProductID BETWEEN 1 AND 10
   AND Price > 10
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입