반응형

JSTL 랜덤 숫자 받아오고 싶을때~

<c:set var="ran"><%= java.lang.Math.round(java.lang.Math.random() * 1234567) %></c:set>

 

출력

${ran}

 

하시면 됩니다

 

 

반응형
반응형

 -- ORDER BY : 정렬  

  -- ASC : 오름차순(생략하면 오름차순)

  -- DESC : 내림차순

 

-- 오름차순 정렬

SELECT name, basicpay FROM insa ORDER BY basicpay;

SELECT name, basicpay FROM insa ORDER BY basicpay ASC;

 

-- 내림차순 정렬

SELECT name, basicpay FROM insa ORDER BY basicpay DESC;

 

--부서별 오름차순으로 정렬하고 부서가 같으면 직위 오름차순 정렬( ㄱ 부터 A 부터 1부터)

SELECT name, buseo,jikwi FROM insa ORDER BY  buseo, jikwi;

 

--부서별 내림차순으로 정렬하고 부서가 같으면 직위 오름차순 정렬(ㅎ 부터 Z 부터 9부터)

 SELECT name, buseo,jikwi FROM insa ORDER BY buseo DESC, jikwi;

 SELECT name, buseo,jikwi FROM insa ORDER BY buseo DESC, jikwi ASC;

 

 -- 다음은 오류가 발생한다  이유가 무엇이고 오류가 없도록 수정 할 것.

 SELECT name, basicpay,sudang,(basicpay + sudang) pay

 FROM insa

 WHERE pay >=2500000  -- WHERE절에는 pay라는 컬럼이 없다.

 ORDER BY pay DESC;

 

 => 컴파일 순서에 따라서 오류가난다

  SELECT name, basicpay,sudang,(basicpay + sudang) pay

 FROM insa

 WHERE (basicpay + sudang) >=2500000  -- WHERE절에는 pay라는 컬럼이 없다.

 ORDER BY pay DESC; --ORDER BY는 가장 마지막에 컴파일 되므로  pay나 (basicpay + sudang) 둘중 아무거나 써도 상관없다.

 

 -- city가 서울 사람중(basicpay + sudang) 내림차순으로 정렬하여 출력

   -- 출력 컬럼 : name, city, basicpay + sudang pay, buseo

   SELECT name, city,(basicpay+sudang) pay, buseo

   FROM insa

   WHERE city='서울'

   ORDER BY pay DESC;

 

 -- 여자 (ssn이 이용) 중 부서 오름차순으로 정렬하고 부서가 같으면 기본급 내림차순으로 정렬

    -- 출력 컬럼 : name, ssn,buseo, basicpay

    SELECT name, ssn, buseo, basicpay

    FROM insa

    WHERE SUBSTR(ssn, 8, 1) IN (2,4,6)

    ORDER BY buseo ASC, basicpay DESC



출처: https://tibang.tistory.com/entry/Oracle-ORDER-BY [T없이맑은날]

반응형
반응형

-- 테이블 생성

 

CREATE TABLE MY_DUAL AS(

    SELECT 1 ID, 2000 SALARY FROM DUAL UNION ALL

    SELECT 2 ID, 2200 SALARY FROM DUAL UNION ALL

    SELECT 3 ID, 2400 SALARY FROM DUAL UNION ALL

    SELECT 4 ID, 2600 SALARY FROM DUAL UNION ALL

    SELECT 5 ID, 2800 SALARY FROM DUAL UNION ALL

    SELECT 6 ID, 2600 SALARY FROM DUAL UNION ALL

    SELECT 7 ID, 3000 SALARY FROM DUAL UNION ALL

    SELECT 8 ID, 2600 SALARY FROM DUAL

);

 

-- 기존 테이블 컬럼만 복사해 새 테이블 생성

 

CREATE TABLE COPY_NEW_TABLE AS(

    SELECT * FROM EXIST_TABLE_NAME

    WHERE 1=2 -- FALSE

);

 

2. 컬럼 ADD, MODIFY, RENAME, DROP 사용하기 - 1

 

-- 1. 컬럼 ADD 

-- ALTER TABLE 테이블명 ADD 새 컬럼명 이름  데이터타입;

 

ALTER TABLE MY_DUAL ADD ANNUAL_INCOME VARCHAR2(1000);

UPDATE MY_DUAL SET ANNUAL_INCOME = SALARY;

 

-- 2. 컬럼 MODIFY 

-- ALTER TABLE 테이블 명 MODIFY 컬럼명 데이터타입;

 

ALTER TABLE MY_DUAL MODIFY SALARY VARCHAR2(1000);

 

-- 3. 컬럼 RENAME

-- ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 바꿀컬럼명;

 

ALTER TABLE MY_DUAL RENAME COLUMN ANNUAL_INCOME TO SALARY;

 

-- 4. 컬럼 DROP

-- ALTER TABLE 테이블명 DROP COLUMN 삭제할 컬럼명;

 

ALTER TABLE MY_DUAL DROP COLUMN SALARY;

 

3. 컬럼에 데이터가 있을때 데이터 유형 바꾸는 방법 - 2

 

-- 컬럼에 데이터가 있을때 데이터 유형 바꾸는 방법

 

-- 1. 새 이름으로 새 컬럼을 하나 생성 (ADD)

ALTER TABLE MY_DUAL ADD ANNUAL_INCOME VARCHAR2(1000);

 

-- 2. 새 컬럼에 기존 데이터를 다시 입력 (SET)

UPDATE MY_DUAL SET ANNUAL_INCOME = SALARY;

 

-- 3. 기존 컬럼 삭제 (DROP)

ALTER TABLE MY_DUAL DROP COLUMN SALARY;

 

-- 4. 새 컬럼의 이름을 기존 컬럼 이름으로 바꿈 (RENAME)

ALTER TABLE MY_DUAL RENAME COLUMN ANNUAL_INCOME TO SALARY;

 

현재 SALARY 컬럼의 데이터 유형은 NUMBER 

SALARY 컬럼은 데이터를 갖고 있다.

데이터를 가지고있는 컬럼에 대한 데이터유형 변경은 허용하지 않는다.

 

그러므로 새 이름의 필요한 데이터유형의 새로운 컬럼을 하나 생성한 뒤 

기존 컬럼이 가지고 있는 데이터를 새로운 데이터유형의 컬럼에 넣어주고(이동)

기존 컬럼을 삭제(DROP) 하고 새 이름의 새컬럼 이름을 기존 컬럼의 이름으로 바꿔주면 된다.

 

 

출처 : https://shlee0882.tistory.com/54

 



반응형

+ Recent posts