반응형
반응형

[DB] Oracle 해당월 1일부터 말일까지 날짜 리스트

dual 이용,

-- 년월일 입력
SELECT CONCAT('201902',LPAD(LEVEL, 2, '0')) AS GO_DAY 
FROM DUAL 
CONNECT BY LEVEL <= TO_CHAR(LAST_DAY(TO_DATE('2019' || '02' || '01', 'YYYYMMDD')), 'DD')

-- 년월 입력
SELECT CONCAT('201902',LPAD(LEVEL, 2, '0')) AS GO_DAY 
FROM DUAL 
CONNECT BY LEVEL <= TO_CHAR(LAST_DAY(TO_DATE('2019' || '02', 'YYYYMM')), 'DD')

3개월 날짜 리스트  ,  20191001 ~ 20191231 까지 날짜 리스트

-- 20191001 ~ 20191231 까지 날짜 리스트 
SELECT TO_CHAR(TO_DATE('20191001', 'YYYYMMDD') + LEVEL - 1, 'YYYYMMDD') GO_DATE
FROM DUAL 
CONNECT BY LEVEL <= TO_DATE('20191231', 'YYYYMMDD') - TO_DATE('20191001', 'YYYYMMDD') + 1
  
반응형
반응형

티베로(TIBERO) 시퀀스 생성, 삭제, 변경, 목록 조회

티베로는 오라클처럼 자동증가를 시퀀스로~ 

시퀀스(Sequence)는 순차적으로 부여할 수 있는 고유 값을 생성하는 스키마 객체이다. 시퀀스를 통해 생성된 값은 주로 기본 키(primary key) 또는 유일 키(Unique Key)에 값을 채워 넣는다.

CURRVAL : 시퀀스의 현재 값을 반환한다.
NEXTVAL : 시퀀스의 현재 값을 증가시키고, 증가된 그 값을 반환한다.

-- 시퀀스 생성 
CREATE SEQUENCE SEQ_TEST 
INCREMENT BY 1 
MINVALUE 1 
MAXVALUE 10; 

-- NEXTVAL 의사 컬럼을 통해 시퀀스 처음 접근 
-- 1 출력 
SELECT SEQ_TEXT.NEXTVAL FROM DUAL;
 
 -- 삭제
 DROP SEQUENCE sequence_name;
 
 -- 변경
 ALTER SEQUENCE sequence_name 
 INCREMENT BY 10 
 MAXVALUE 99999999999 
 NOCYCLE CACHE 200;


-- 소유한 시퀀스 조회 
SELECT * 
FROM ALL_SEQUENCES b 
WHERE sequence_owner = '소유주아이디';

Tibero SQL 참조 안내서 

https://technet.tmaxsoft.com/upload/download/online/tibero/pver-20150504-000001/sql-reference/index.html

 

Tibero SQL 참조 안내서

Tibero SQL 참조 안내서  Tibero 6 저작권 © 2019 TmaxData Co., Ltd. All Rights Reserved. 기술서비스센터 Tel : +82-1544-8629 E-Mail : info@tmax.co.kr Restricted Rights Legend All TmaxData Software (Tibero®) and documents are protected by copyright laws and international con

technet.tmaxsoft.com

 

반응형
반응형

 

root bin]# tbsql sys/tibero  

* sys : ID
* tibero : PW

 

tbsql id/pw

@'C:\Users\___\Desktop\sql\sql_file.sql'

반응형
반응형

[MYSQL] update ...select 구문. 삽질하다가 OK

#mysql #database #update #select

아래처럼 해야함.

update wp_moa_bible_mcheyne m

  join wp_moa_bible_sort s on s.name_short = m.sort_name

   set m.ever_seq_no = s.ever_seq_no

;

아래처럼 계속 하면 삽질만 한다. 

update wp_moa_bible_mcheyne a

set ever_seq_no = (

    select ever_seq_no

      from wp_moa_bible_sort b

    where a.sort_name = b.name_short

);



update wp_moa_bible_mcheyne m,

        wp_moa_bible_sort s

    set m.ever_seq_no = s.ever_seq_no

  where m.sort_name = s.sort_name

;
반응형
반응형

Mysql 자음 초성 추출 함수, 자음으로 검색, 초성 검색

함수를 만들어서 추출해보자. 

CREATE DEFINER=`gn`@`%` FUNCTION `fn_choSearch`(`str` varchar(20)) RETURNS varchar(20) CHARSET utf8 
 
BEGIN 
     declare returnStr varchar(100); 
     declare cnt int; 
     declare i int; 
     declare j int; 
     declare tmpStr varchar(10); 
 
     if str is null then 
         return ''; 
     end if; 
 
     set cnt = length(str)/3; 
     set i = 1; 
     set j = 1; 
 
     while i <=cnt DO 
           set tmpStr = substring(str,i,j); 
           set returnStr = concat(ifnull(returnStr,''), 
 
            case when tmpStr rlike '^(ㄱ|ㄲ)' OR ( tmpStr >= '가' AND tmpStr < '나' ) then 'ㄱ' 
                 when tmpStr rlike '^ㄴ' OR ( tmpStr >= '나' AND tmpStr < '다' ) then 'ㄴ' 
                 when tmpStr rlike '^(ㄷ|ㄸ)' OR ( tmpStr >= '다' AND tmpStr < '라' ) then 'ㄷ' 
                 when tmpStr rlike '^ㄹ' OR ( tmpStr >= '라' AND tmpStr < '마' ) then 'ㄹ' 
                 when tmpStr rlike '^ㅁ' OR ( tmpStr >= '마' AND tmpStr < '바' ) then 'ㅁ' 
                 when tmpStr rlike '^ㅂ' OR ( tmpStr >= '바' AND tmpStr < '사' ) then 'ㅂ' 
                 when tmpStr rlike '^(ㅅ|ㅆ)' OR ( tmpStr >= '사' AND tmpStr < '아' ) then 'ㅅ' 
                 when tmpStr rlike '^ㅇ' OR ( tmpStr >= '아' AND tmpStr < '자' ) then 'ㅇ' 
                 when tmpStr rlike '^(ㅈ|ㅉ)' OR ( tmpStr >= '자' AND tmpStr < '차' ) then 'ㅈ' 
                 when tmpStr rlike '^ㅊ' OR ( tmpStr >= '차' AND tmpStr < '카' ) then 'ㅊ' 
                 when tmpStr rlike '^ㅋ' OR ( tmpStr >= '카' AND tmpStr < '타' ) then 'ㅋ' 
                 when tmpStr rlike '^ㅌ' OR ( tmpStr >= '타' AND tmpStr < '파' ) then 'ㅌ' 
                 when tmpStr rlike '^ㅍ' OR ( tmpStr >= '파' AND tmpStr < '하' ) then 'ㅍ' 
            else 'ㅎ' end); 
           set i=i+1; 
     end while; 
  RETURN returnStr; 
END;

 

자바스크립트로 검색어가 초성인지 아닌지 체크

var keyword = $("#keyword").val().toUpperCase(); 
var choKeyword = choHangul($("#keyword").val()); 
 
//초성검색 구분 
 
if (keyword!="" && choKeyword==""){ 
    choDiv = 'Y'; 
}else{ 
    choDiv = 'N'; 
} 

/* 초성추출 */ 
function choHangul(str) { 
  cho = ["ㄱ","ㄲ","ㄴ","ㄷ","ㄸ","ㄹ","ㅁ","ㅂ","ㅃ","ㅅ","ㅆ","ㅇ","ㅈ","ㅉ","ㅊ","ㅋ","ㅌ","ㅍ","ㅎ"]; 
  result = ""; 
  for(i=0;i<str.length;i++) { 
      code = str.charCodeAt(i)-44032; 
    if(code>-1 && code<11172) result += cho[Math.floor(code/588)]; 
  } 
  return result; 
} 

 

 

쿼리에서 초성 추출하자.

WHERE 1=1 
<isEqual prepend='AND' property="choDiv" compareValue="N" > 
    S1.STOP_NAME LIKE concat('%',#keyword#,'%') OR S1.STOP_ID LIKE concat('%',#keyword#,'%') 
</isEqual> 
<isEqual prepend='AND' property="choDiv" compareValue="Y" > 
    fn_choSearch(S1.stop_name) LIKE concat('%',#keyword#,'%') OR S1.STOP_ID LIKE concat('%',#keyword#,'%') 
</isEqual> 

 

choDiv 값이 N 일 경우 일반검색
choDiv 값이 Y 일 경우 위의 oracle함수를 사용하여 초성검색


예를 들어
이렇게 구현을 하면 'ㄱㄴㄷ' 으로 검색을 하면
가나다
간난단
갇낟닫
...
등 초성이 ㄱ,ㄴ,ㄷ 인 데이터가 검색된다.

출처 : https://aljjabaegi.tistory.com/220

 

Mysql 자음 초성 추출 함수, 자음으로 검색, 초성 검색

Mysql 자음 초성 추출 함수, 자음으로 검색, 초성 검색 개발을 하다보면 자음으로만 검색할 수 있게 해달라는 요청이 들어오곤 한다. 그럴때마다 유용하게 사용하는 것이 아래의 함수이다. 그냥 복사 붙여넣고 실..

aljjabaegi.tistory.com

 

반응형
반응형

MYSQL 특수문자 치환, 특수문자 치환 찾기MYSQL 특수문자 치환, 특수문자 치환 찾기. CHAR()

SELECT char(63);
SELECT ASCII('?') FROM DUAL;
SELECT CONCAT('http://naver.com/Mobile.dm',char(63),'123') MOBILE_URL

 

반응형

+ Recent posts