번호 | 쿼리 | 결과 | 코드 | 형식 |
0 | CONVERT(CHAR(19),GETDATE(),0) | Jun 7 2018 4:27PM | mon dd yyyy hh:miAM | 기본값 |
1 | CONVERT(CHAR(8),GETDATE(),1) | 2006-07-18 | mm/dd/yy | 미국 |
2 | CONVERT(CHAR(8),GETDATE(),2) | 18.06.07 | yy/mm/dd | ANSI |
3 | CONVERT(CHAR(8),GETDATE(),3) | 2007-06-18 | dd/mm/yy | 영국/프랑스 |
4 | CONVERT(CHAR(8),GETDATE(),4) | 07.06.18 | dd.mm.yy | 독일 |
5 | CONVERT(CHAR(8),GETDATE(),5) | 2007-06-18 | dd-mm-yy | 이탈리아 |
6 | CONVERT(CHAR(9),GETDATE(),6) | 07-Jun-18 | dd mom yy | - |
7 | CONVERT(CHAR(10),GETDATE(),7) | 07-Jun-18 | mon dd, yy | - |
8 | CONVERT(CHAR(8),GETDATE(),8) | 09:10:50 | hh:mi:ss | - |
9 | CONVERT(CHAR(26),GETDATE(),9) | Jun 7 2018 9:10:50:937AM | mon dd yyyy hh:mi:ss:mmmAM | 기본값 |
10 | CONVERT(CHAR(8),GETDATE(),10) | 2006-07-18 | mm-dd-yy | 미국 |
11 | CONVERT(CHAR(8),GETDATE(),11) | 2018-06-07 | yy/mm/dd | 일본 |
12 | CONVERT(CHAR(6),GETDATE(),12) | 180607 | yymmdd | ISO |
13 | CONVERT(CHAR(24),GETDATE(),13) | 07 Jun 2018 09:10:50:937 | dd mon yyyy hh:mi:ss:mmm | 유럽기본값 |
14 | CONVERT(CHAR(12),GETDATE(),14) | 09:10:50:937 | hh:mi:ss:mmm | - |
20 | CONVERT(CHAR(19),GETDATE(),20) | 2018-06-07 10:16 | yyyy-mm-dd hh:mi:ss | ODBC 표준 |
21 | CONVERT(CHAR(23),GETDATE(),21) | 16:27.4 | yyyy-mm-dd hh:mi:ss.mmm | ODBC 표준 |
22 | CONVERT(CHAR(20),GETDATE(),22) | 2018-06-07 10:16 | yyyy-mm-dd hh:mi:ss AM | - |
23 | CONVERT(CHAR(10),GETDATE(),23) | 2018-06-07 | yyyy-mm-dd | - |
24 | CONVERT(CHAR(8),GETDATE(),24) | 10:16:27 | hh:mi:ss | - |
25 | CONVERT(CHAR(23),GETDATE(),25) | 16:27.4 | yyyy-mm-dd hh:mi:ss.mmm | - |
100 | CONVERT(CHAR(19),GETDATE(),100) | Jun 7 2018 4:27PM | mon dd yyyy hh:miAM | 기본값 |
101 | CONVERT(CHAR(10),GETDATE(),101) | 06/07/2018 | mm/dd/yyyy | 미국 |
102 | CONVERT(CHAR(10),GETDATE(),102) | 2018.06.07 | yyyy/mm/dd | ANSI |
103 | CONVERT(CHAR(10),GETDATE(),103) | 07/06/2018 | dd/mm/yyyy | 영국/프랑스 |
104 | CONVERT(CHAR(10),GETDATE(),104) | 07.06.2018 | dd.mm.yyyy | 독일 |
105 | CONVERT(CHAR(10),GETDATE(),105) | 07-06-2018 | dd-mm-yyyy | 이탈리아 |
106 | CONVERT(CHAR(11),GETDATE(),106) | 07-Jun-18 | dd mom yyyy | - |
107 | CONVERT(CHAR(12),GETDATE(),107) | 07-Jun-18 | mon dd, yyyy | - |
108 | CONVERT(CHAR(8),GETDATE(),108) | 09:10:50 | hh:mi:ss | - |
109 | CONVERT(CHAR(26),GETDATE(),109) | Jun 7 2018 9:10:50:937AM | mon dd yyyy hh:mi:ss:mmmAM | 기본값 |
110 | CONVERT(CHAR(10),GETDATE(),110) | 06-07-2018 | mm-dd-yyyy | 미국 |
111 | CONVERT(CHAR(10),GETDATE(),111) | 2018-06-07 | yyyy/mm/dd | 일본 |
112 | CONVERT(CHAR(8),GETDATE(),112) | 20180607 | yyyymmdd | ISO |
113 | CONVERT(CHAR(24),GETDATE(),113) | 07 Jun 2018 09:10:50:937 | dd mon yyyy hh:mi:ss:mmm | 유럽기본값 |
114 | CONVERT(CHAR(12),GETDATE(),114) | 09:10:50:937 | hh:mi:ss:mmm | - |
120 | CONVERT(CHAR(19),GETDATE(),120) | 2018-06-07 10:16 | yyyy-mm-dd hh:mi:ss | ODBC표준 |
121 | CONVERT(CHAR(23),GETDATE(),121) | 16:27.4 | yyyy-mm-dd hh:mi:ss.mmm | ODBC표준 |
126 | CONVERT(CHAR(23),GETDATE(),126) | 2018-06-07T10:16:27.387 | yyyy-mm-ddThh:mi:ss.mmm | ISO8601 |
127 | CONVERT(CHAR(23),GETDATE(),127) | 2018-06-07T10:16:27.387 | yyyy-mm-ddThh:mi:ss.mmmZ | ISO8601 |
130 | CONVERT(CHAR(28),GETDATE(),126) | 24 ??? 1439 3:10:25:287PM | dd mon yyyy hh:mi:ss:mmmAM | 회교식 |
130 | CONVERT(CHAR(26),GETDATE(),126) | 24/09/1439 3:10:25:287PM | dd/mm/yy hh:mi:ss:mmmAM | 회교식 |
2022년 1월 17일 월요일
MS-SQL date-format
2018년 11월 6일 화요일
DATA-BASE 정보 (테이블,컬럼,인덱스)
-- ORACLE --
SELECT * FROM ALL_INDEXES;
SELECT * FROM ALL_IND_COLUMNS;
SELECT * FROM TABS;
SELECT * FROM ALL_ALL_TABLES;
SELECT * FROM ALL_TAB_COMMENTS;
SELECT * FROM COLS;
SELECT * FROM USER_COL_COMMENTS;
SELECT * FROM DICTIONARY WHERE TABLE_NAME IN ('TABS','ALL_ALL_TABLES','COLS','ALL_TAB_COMMENTS','USER_COL_COMMENTS','ALL_INDEXES','ALL_IND_COLUMNS');
/*
1 ALL_ALL_TABLES Description of all object and relational tables accessible to the user
2 ALL_INDEXES Descriptions of indexes on tables accessible to the user
3 ALL_IND_COLUMNS COLUMNs comprising INDEXes on accessible TABLES
4 ALL_TAB_COMMENTS Comments on tables and views accessible to the user
5 USER_COL_COMMENTS Comments on columns of user's tables and views
6 COLS Synonym for USER_TAB_COLUMNS
7 TABS Synonym for USER_TABLES
*/
WITH AA AS (
SELECT TABLE_NAME
FROM TABS
WHERE SUBSTR(TABLE_NAME,1,4) = 'T_RM'
AND SUBSTR(TABLE_NAME,-4) NOT IN ('HIST','TEMP')
)
SELECT
AA.TABLE_NAME, 'C' AS TYPE, TC.COMMENTS, C.COLUMN_NAME, C.DATA_TYPE, CC.COMMENTS
FROM AA
INNER JOIN ALL_TAB_COMMENTS TC ON AA.TABLE_NAME = TC.TABLE_NAME
INNER JOIN COLS C ON AA.TABLE_NAME = C.TABLE_NAME
INNER JOIN USER_COL_COMMENTS CC ON AA.TABLE_NAME = CC.TABLE_NAME AND C.COLUMN_NAME = CC.COLUMN_NAME
WHERE TC.OWNER = 'WCSUSER'
UNION ALL
SELECT AA.TABLE_NAME, 'I' AS TYPE, I.INDEX_NAME, LISTAGG(I.COLUMN_NAME,', ') WITHIN GROUP (ORDER BY I.COLUMN_NAME),'',''
FROM ALL_IND_COLUMNS I INNER JOIN AA ON AA.TABLE_NAME = I.TABLE_NAME
GROUP BY AA.TABLE_NAME, I.INDEX_NAME
ORDER BY 1,2
;
-- MS-SQL --
INFORMATION_SCHEMA.TABLES INFORMATION_SCHEMA.TABLE_CONSTRAINTS INFORMATION_SCHEMA.VIEW_TABLE_USAGE INFORMATION_SCHEMA.COLUMNS INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE INFORMATION_SCHEMA.KEY_COLUMN_USAGE INFORMATION_SCHEMA.VIEW_COLUMN_USAGE SYSOBJECTS
--테이블 코멘트 조회
SELECT OBJTYPE, OBJNAME, NAME, VALUE
FROM ::FN_LISTEXTENDEDPROPERTY (NULL, 'SCHEMA', 'DBO', 'TABLE', '테이블이름', DEFAULT, DEFAULT)
;
--컬럼 코멘트 조회
SELECT OBJTYPE, OBJNAME, NAME, VALUE FROM ::FN_LISTEXTENDEDPROPERTY(NULL, 'SCHEMA', 'DBO', 'TABLE', '테이블이름', 'COLUMN', DEFAULT)
;
SELECT * FROM INFORMATION_SCHEMA.TABLES;
SELECT * FROM INFORMATION_SCHEMA.COLUMNS;
SELECT * FROM SYS.EXTENDED_PROPERTIES;
SELECT * FROM SYSUSERS; SELECT * FROM SYSOBJECTS;
SELECT * FROM SYSCOLUMNS;
SELECT /* OBJECT LIST */
COL.TABLE_CATALOG, COL.TABLE_SCHEMA
, CASE OBJ.ID
WHEN LAG(OBJ.ID) OVER (ORDER BY COL.TABLE_CATALOG, COL.TABLE_SCHEMA, COL.TABLE_NAME, COL.ORDINAL_POSITION)
THEN NULL
ELSE OBJ.ID
END AS ID
, CASE COL.TABLE_NAME
WHEN LAG(COL.TABLE_NAME) OVER (ORDER BY COL.TABLE_CATALOG, COL.TABLE_SCHEMA, COL.TABLE_NAME, COL.ORDINAL_POSITION)
THEN ''
ELSE COL.TABLE_NAME
END AS TABLE_NAME
, CASE PROP_T.value
WHEN LAG(PROP_T.value) OVER (ORDER BY COL.TABLE_CATALOG, COL.TABLE_SCHEMA, COL.TABLE_NAME, COL.ORDINAL_POSITION)
THEN ''
ELSE PROP_T.value
END AS TABLE_COMMENT
,OBJ.ID,COL.TABLE_NAME,PROP_T.value AS TABLE_COMMENT
, COL.COLUMN_NAME
, PROP.value AS COLUMN_COMMENT
, COL.ORDINAL_POSITION
, CONVERT(VARCHAR,COL.DATA_TYPE) +'('+ ISNULL(CONVERT(VARCHAR,COL.CHARACTER_MAXIMUM_LENGTH),'') +')' AS DATA_TYPE
, COL.IS_NULLABLE
, COL.COLUMN_DEFAULT
FROM SYSOBJECTS OBJ
INNER JOIN INFORMATION_SCHEMA.COLUMNS COL ON OBJ.NAME = COL.TABLE_NAME
LEFT OUTER JOIN SYS.EXTENDED_PROPERTIES PROP ON OBJ.ID = PROP.major_id
AND COL.ORDINAL_POSITION = PROP.minor_id
LEFT OUTER JOIN (
SELECT major_id,VALUE FROM SYS.EXTENDED_PROPERTIES WHERE minor_id=0
) PROP_T ON OBJ.ID = PROP_T.major_id
WHERE 0=0
ORDER BY COL.TABLE_CATALOG, COL.TABLE_SCHEMA, COL.TABLE_NAME, COL.ORDINAL_POSITION
;
SELECT /* COLUMN DETAILS */
CASE
OBJ.NAME WHEN LAG(OBJ.NAME) OVER(ORDER BY PROP.minor_id) THEN ''
ELSE OBJ.NAME
END AS TABLE_NAME
,OBJ.NAME
,ISNULL(COL.COLUMN_NAME,'[ '+OBJ.NAME+' ]') AS NAME
, COL.COLUMN_NAME
, PROP.VALUE AS COMMENT
, 'private String ' + LOWER(COL.COLUMN_NAME) + ';// ' + CONVERT(VARCHAR, PROP.VALUE) AS STR
, PROP.minor_id
FROM SYSOBJECTS OBJ
INNER JOIN SYS.EXTENDED_PROPERTIES PROP ON OBJ.ID = PROP.major_id
LEFT OUTER JOIN INFORMATION_SCHEMA.COLUMNS COL ON OBJ.NAME = COL.TABLE_NAME
AND COL.ORDINAL_POSITION = PROP.minor_id
WHERE OBJ.TYPE = 'U'
AND PROP.NAME = 'MS_Description'
AND PROP.CLASS_DESC = 'OBJECT_OR_COLUMN'
ORDER BY OBJ.NAME ASC, PROP.minor_id
;
SELECT * FROM ALL_INDEXES;
SELECT * FROM ALL_IND_COLUMNS;
SELECT * FROM TABS;
SELECT * FROM ALL_ALL_TABLES;
SELECT * FROM ALL_TAB_COMMENTS;
SELECT * FROM COLS;
SELECT * FROM USER_COL_COMMENTS;
SELECT * FROM DICTIONARY WHERE TABLE_NAME IN ('TABS','ALL_ALL_TABLES','COLS','ALL_TAB_COMMENTS','USER_COL_COMMENTS','ALL_INDEXES','ALL_IND_COLUMNS');
/*
1 ALL_ALL_TABLES Description of all object and relational tables accessible to the user
2 ALL_INDEXES Descriptions of indexes on tables accessible to the user
3 ALL_IND_COLUMNS COLUMNs comprising INDEXes on accessible TABLES
4 ALL_TAB_COMMENTS Comments on tables and views accessible to the user
5 USER_COL_COMMENTS Comments on columns of user's tables and views
6 COLS Synonym for USER_TAB_COLUMNS
7 TABS Synonym for USER_TABLES
*/
WITH AA AS (
SELECT TABLE_NAME
FROM TABS
WHERE SUBSTR(TABLE_NAME,1,4) = 'T_RM'
AND SUBSTR(TABLE_NAME,-4) NOT IN ('HIST','TEMP')
)
SELECT
AA.TABLE_NAME, 'C' AS TYPE, TC.COMMENTS, C.COLUMN_NAME, C.DATA_TYPE, CC.COMMENTS
FROM AA
INNER JOIN ALL_TAB_COMMENTS TC ON AA.TABLE_NAME = TC.TABLE_NAME
INNER JOIN COLS C ON AA.TABLE_NAME = C.TABLE_NAME
INNER JOIN USER_COL_COMMENTS CC ON AA.TABLE_NAME = CC.TABLE_NAME AND C.COLUMN_NAME = CC.COLUMN_NAME
WHERE TC.OWNER = 'WCSUSER'
UNION ALL
SELECT AA.TABLE_NAME, 'I' AS TYPE, I.INDEX_NAME, LISTAGG(I.COLUMN_NAME,', ') WITHIN GROUP (ORDER BY I.COLUMN_NAME),'',''
FROM ALL_IND_COLUMNS I INNER JOIN AA ON AA.TABLE_NAME = I.TABLE_NAME
GROUP BY AA.TABLE_NAME, I.INDEX_NAME
ORDER BY 1,2
;
-- MS-SQL --
INFORMATION_SCHEMA.TABLES INFORMATION_SCHEMA.TABLE_CONSTRAINTS INFORMATION_SCHEMA.VIEW_TABLE_USAGE INFORMATION_SCHEMA.COLUMNS INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE INFORMATION_SCHEMA.KEY_COLUMN_USAGE INFORMATION_SCHEMA.VIEW_COLUMN_USAGE SYSOBJECTS
--테이블 코멘트 조회
SELECT OBJTYPE, OBJNAME, NAME, VALUE
FROM ::FN_LISTEXTENDEDPROPERTY (NULL, 'SCHEMA', 'DBO', 'TABLE', '테이블이름', DEFAULT, DEFAULT)
;
--컬럼 코멘트 조회
SELECT OBJTYPE, OBJNAME, NAME, VALUE FROM ::FN_LISTEXTENDEDPROPERTY(NULL, 'SCHEMA', 'DBO', 'TABLE', '테이블이름', 'COLUMN', DEFAULT)
;
SELECT * FROM INFORMATION_SCHEMA.TABLES;
SELECT * FROM INFORMATION_SCHEMA.COLUMNS;
SELECT * FROM SYS.EXTENDED_PROPERTIES;
SELECT * FROM SYSUSERS; SELECT * FROM SYSOBJECTS;
SELECT * FROM SYSCOLUMNS;
SELECT /* OBJECT LIST */
COL.TABLE_CATALOG, COL.TABLE_SCHEMA
, CASE OBJ.ID
WHEN LAG(OBJ.ID) OVER (ORDER BY COL.TABLE_CATALOG, COL.TABLE_SCHEMA, COL.TABLE_NAME, COL.ORDINAL_POSITION)
THEN NULL
ELSE OBJ.ID
END AS ID
, CASE COL.TABLE_NAME
WHEN LAG(COL.TABLE_NAME) OVER (ORDER BY COL.TABLE_CATALOG, COL.TABLE_SCHEMA, COL.TABLE_NAME, COL.ORDINAL_POSITION)
THEN ''
ELSE COL.TABLE_NAME
END AS TABLE_NAME
, CASE PROP_T.value
WHEN LAG(PROP_T.value) OVER (ORDER BY COL.TABLE_CATALOG, COL.TABLE_SCHEMA, COL.TABLE_NAME, COL.ORDINAL_POSITION)
THEN ''
ELSE PROP_T.value
END AS TABLE_COMMENT
,OBJ.ID,COL.TABLE_NAME,PROP_T.value AS TABLE_COMMENT
, COL.COLUMN_NAME
, PROP.value AS COLUMN_COMMENT
, COL.ORDINAL_POSITION
, CONVERT(VARCHAR,COL.DATA_TYPE) +'('+ ISNULL(CONVERT(VARCHAR,COL.CHARACTER_MAXIMUM_LENGTH),'') +')' AS DATA_TYPE
, COL.IS_NULLABLE
, COL.COLUMN_DEFAULT
FROM SYSOBJECTS OBJ
INNER JOIN INFORMATION_SCHEMA.COLUMNS COL ON OBJ.NAME = COL.TABLE_NAME
LEFT OUTER JOIN SYS.EXTENDED_PROPERTIES PROP ON OBJ.ID = PROP.major_id
AND COL.ORDINAL_POSITION = PROP.minor_id
LEFT OUTER JOIN (
SELECT major_id,VALUE FROM SYS.EXTENDED_PROPERTIES WHERE minor_id=0
) PROP_T ON OBJ.ID = PROP_T.major_id
WHERE 0=0
ORDER BY COL.TABLE_CATALOG, COL.TABLE_SCHEMA, COL.TABLE_NAME, COL.ORDINAL_POSITION
;
SELECT /* COLUMN DETAILS */
CASE
OBJ.NAME WHEN LAG(OBJ.NAME) OVER(ORDER BY PROP.minor_id) THEN ''
ELSE OBJ.NAME
END AS TABLE_NAME
,OBJ.NAME
,ISNULL(COL.COLUMN_NAME,'[ '+OBJ.NAME+' ]') AS NAME
, COL.COLUMN_NAME
, PROP.VALUE AS COMMENT
, 'private String ' + LOWER(COL.COLUMN_NAME) + ';// ' + CONVERT(VARCHAR, PROP.VALUE) AS STR
, PROP.minor_id
FROM SYSOBJECTS OBJ
INNER JOIN SYS.EXTENDED_PROPERTIES PROP ON OBJ.ID = PROP.major_id
LEFT OUTER JOIN INFORMATION_SCHEMA.COLUMNS COL ON OBJ.NAME = COL.TABLE_NAME
AND COL.ORDINAL_POSITION = PROP.minor_id
WHERE OBJ.TYPE = 'U'
AND PROP.NAME = 'MS_Description'
AND PROP.CLASS_DESC = 'OBJECT_OR_COLUMN'
ORDER BY OBJ.NAME ASC, PROP.minor_id
;
2016년 2월 15일 월요일
Common Table Expression
Common Table Expression
기본 구조
WITH [CTE의 이름] ( [CTE에서 반환하는 열] )
AS (
Table View
)
SELECT *FROM [CTE의 이름];
2. [CTE에서 반환하는 열]은 AS 안의 Table View의 반환값과 같아야 함
3. AS 안에서는 내부 조인만 가능하다.
주의 사항
1. WITH 전에 GO 혹은 세미콜론(;)을 사용해야 함2. [CTE에서 반환하는 열]은 AS 안의 Table View의 반환값과 같아야 함
3. AS 안에서는 내부 조인만 가능하다.
예제
이 예제에서는 CTE를 사용하여 반복+계층 질의문을 반환하도록 한다.1. 예제 테이블 형식
[부서 ID], [부서 명] , [상위 부서 ID], [사용자 명]2. 예제 테이블 기본 값
부서 ID | 부서 명 | 상위 부서 ID | 사용자 명 |
---|---|---|---|
Dev | 개발부 | NULL | 김개발 |
Ope | 영업부 | NULL | 이영업 |
Dev1 | 개발1팀 | Dev | 김일팀 |
Dev2 | 개발2팀 | Dev | 김이팀 |
Dev1-1 | 개발1팀1조 | Dev1 | 김일조 |
Ope1 | 영업1팀 | Ope | 이일팀 |
Ope2 | 영업2팀 | Ope | 이이팀 |
3. 질의문 작성
3-1. QUERY TEMPLATE
WITH CTE_DEPT ( [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명] )
AS (
Table View
)
SELECT *FROM CTE_DEPT
3-2. 기준이 되는 테이블 (상위부서가 없는 행)
WITH CTE_DEPT ( [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명] )
AS (
-- Table View
SELECT [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명]
FROM DEPT_TABLE
WHERE [상위부서 ID] IS NULL
)
SELECT *FROM CTE_DEPT
"3-1"에서 가져온 기준이 되는 테이블 외의 것을 가져오는 것을 의미함)
WITH CTE_DEPT ( [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명] )
AS (
-- Table View
SELECT [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명]
FROM DEPT_TABLE
WHERE [상위부서 ID] IS NULL
)
SELECT *FROM CTE_DEPT
부서 ID | 부서 명 | 상위 부서 ID | 사용자 명 |
---|---|---|---|
Dev | 개발부 | NULL | 김개발 |
Ope | 영업부 | NULL | 이영업 |
3-3. 반복+계층을 위한 UNION ALL 작성
(기본 테이블의 [상위 부서 ID]와 CTE테이블의 [부서 ID]가 같은 것을 가져온다는 것은"3-1"에서 가져온 기준이 되는 테이블 외의 것을 가져오는 것을 의미함)
WITH CTE_DEPT ( [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명] )
AS (
-- Table View
SELECT [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명]
FROM DEPT_TABLE
WHERE [상위부서 ID] IS NULL
UNION ALL
SELECT A.[부서 ID], A.[부서 명] , A.[상위 부서 ID], A.[사용자 명]
FROM DEPT_TABLE A
INNER JOIN CTE_DEPT B ON A.[상위부서 ID] = B.[부서 ID]
)
SELECT *FROM CTE_DEPT
부서 ID | 부서 명 | 상위 부서 ID | 사용자 명 |
---|---|---|---|
Dev | 개발부 | NULL | 김개발 |
Ope | 영업부 | NULL | 이영업 |
Dev1 | 개발1팀 | Dev | 김일팀 |
Dev2 | 개발2팀 | Dev | 김이팀 |
Dev1-1 | 개발1팀1조 | Dev1 | 김일조 |
Ope1 | 영업1팀 | Ope | 이일팀 |
Ope2 | 영업2팀 | Ope | 이이팀 |
3-4. 계층을 보여주는 LEVEL 함수 사용 및 반복 확인 열 추가
WITH CTE_DEPT ( [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명], LEVEL )
AS (
-- Table View
SELECT [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명], 0
FROM DEPT_TABLE
WHERE [상위부서 ID] IS NULL
UNION ALL
SELECT A.[부서 ID], A.[부서 명] , A.[상위 부서 ID], A.[사용자 명], B.LEVEL+1
FROM DEPT_TABLE A
INNER JOIN CTE_DEPT B ON A.[상위부서 ID] = B.[부서 ID]
)
SELECT [부서 ID], REPLICATE('ㄴ',LEVEL)+ [부서 명] , [상위 부서 ID], [사용자 명], LEVEL
FROM CTE_DEPT
부서 ID | 부서 명 | 상위 부서 ID | 사용자 명 | LEVEL |
---|---|---|---|---|
Dev | 개발부 | NULL | 김개발 | 0 |
Ope | 영업부 | NULL | 이영업 | 0 |
Dev1 | ㄴ개발1팀 | Dev | 김일팀 | 1 |
Dev2 | ㄴ개발2팀 | Dev | 김이팀 | 1 |
Dev1-1 | ㄴㄴ개발1팀1조 | Dev1 | 김일조 | 2 |
Ope1 | ㄴ영업1팀 | Ope | 이일팀 | 1 |
Ope2 | ㄴ영업2팀 | Ope | 이이팀 | 1 |
3-5. 정렬
WITH CTE_DEPT ( [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명], LEVEL )
AS (
-- Table View
SELECT [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명], 0
FROM DEPT_TABLE
WHERE [상위부서 ID] IS NULL
UNION ALL
SELECT A.[부서 ID], A.[부서 명] , A.[상위 부서 ID], A.[사용자 명], B.LEVEL+1
FROM DEPT_TABLE A
INNER JOIN CTE_DEPT B ON A.[상위부서 ID] = B.[부서 ID]
)
SELECT [부서 ID], REPLICATE('ㄴ',LEVEL)+ [부서 명] , [상위 부서 ID], [사용자 명], LEVEL
FROM CTE_DEPT
ORDER BY [부서 ID] , LEVEL
/* 부서 ID가 숫자일 경우 */
-- ORDER BY ISNULL([상위부서 ID], [부서 ID]), LEVEL
부서 ID | 부서 명 | 상위 부서 ID | 사용자 명 | LEVEL |
---|---|---|---|---|
Dev | 개발부 | NULL | 김개발 | 0 |
Dev1 | ㄴ개발1팀 | Dev | 김일팀 | 1 |
Dev2 | ㄴ개발2팀 | Dev | 김이팀 | 1 |
Dev1-1 | ㄴㄴ개발1팀1조 | Dev1 | 김일조 | 2 |
Ope | 영업부 | NULL | 이영업 | 0 |
Ope1 | ㄴ영업1팀 | Ope | 이일팀 | 1 |
Ope2 | ㄴ영업2팀 | Ope | 이이팀 | 1 |
3-6. 최상위 부모 가져오기
WITH CTE_DEPT ( [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명], LEVEL, TOPID)
AS (
-- Table View
SELECT [부서 ID], [부서 명] , [상위 부서 ID], [사용자 명], 0, [부서 ID] AS TOPID
FROM DEPT_TABLE
WHERE [상위부서 ID] IS NULL
UNION ALL
SELECT A.[부서 ID], A.[부서 명] , A.[상위 부서 ID], A.[사용자 명], B.LEVEL+1, B.TOPID
FROM DEPT_TABLE A
INNER JOIN CTE_DEPT B ON A.[상위부서 ID] = B.[부서 ID]
)
SELECT [부서 ID], REPLICATE('ㄴ',LEVEL)+ [부서 명] , [상위 부서 ID], [사용자 명], LEVEL, TOPID
FROM CTE_DEPT
ORDER BY [부서 ID], LEVEL
ORDER BY [부서 ID], LEVEL
부서 ID | 부서 명 | 상위 부서 ID | 사용자 명 | TOPID |
---|---|---|---|---|
Dev | 개발부 | NULL | 김개발 | Dev |
Dev1 | 개발1팀 | Dev | 김일팀 | Dev |
Dev2 | 개발2팀 | Dev | 김이팀 | Dev |
Dev1-1 | 개발1팀1조 | Dev1 | 김일조 | Dev |
Ope | 영업부 | NULL | 이영업 | Ope |
Ope1 | 영업1팀 | Ope | 이일팀 | Ope |
Ope2 | 영업2팀 | Ope | 이이팀 | Ope |
2014년 12월 14일 일요일
mavan install for MSSQL case.
1. maven install at MAC
1-1 download maven
http://maven.apache.org/download.cgi > apache-maven-3.x.x-bin.tar.gz
1-2 압축풀기
압축을 /usr/local 에 푼다.
1-3 링크만들기
ln -s apache-maven-3.2.3 maven
-----------------------------------------------------------------------------
ls -l
2. maven install at Windows
2-1 download maven
http://maven.apache.org/download.cgi > apache-maven-3.x.x-bin.zip
2-2 압축풀기
압축을 특정 폴더에 푼다. (예 D:\maven\)
2-3 환경변수 등록
2-3-1 컴퓨터 아이콘에 오른클릭 후 속성 (혹은 윈도우 로고 + pause키)
2-3-2 고급 시스템 설정 > 고급 탭 > 환경변수 버튼
2-3-3 시스템 변수 부분에서 새로 만들기 버튼
2-3-3-1 변수이름: MAVEN_HOME // 변수 값 : MAVEN을 압축 해제한 폴더
2-3-4 기존 시스템 변수에 추가
2-3-4-1 기존 변수이름 : Path // 추가 할 변수 값 : %MAVEN_HOME%\bin;
** 변수 값 추가 전 끝 부분이 세미콜론(;)으로 되어 있는지 확인하고
추가 후 마지막 부분을 세미콜론(;)으로 해 주어야 함.
2-3-5 java가 설치되어 있어야 하며 JAVA_HOME이 설정되어 있어야 함
설정방법은 메이븐과 동일 단 이름과 변수의 폴더 위치만 바뀜
예) 변수이름: JAVA_HOME // 변수 값 : JAVA를 압축 해제한 폴더
2-4 설치 확인
2-4-1 [윈도우 로고 + R] 로 실행창을 열고 cmd 입력 후 확인
2-4-2 자바 버젼 확인 : java -version
2-4-3 메이븐 버젼 확인 : mvn -version
1-1 download maven
http://maven.apache.org/download.cgi > apache-maven-3.x.x-bin.tar.gz
1-2 압축풀기
압축을 /usr/local 에 푼다.
1-3 링크만들기
ln -s apache-maven-3.2.3 maven
-----------------------------------------------------------------------------
ls -l
lrwxr-xr-x 1 root owner 18 12 8 18:05 maven -> apache-maven-3.2.3
-----------------------------------------------------------------------------
1-4 프로파일 수정
/User 안의 .profile 을 편집하여 아래 내용을 넣기
* 참고 : 자바의 경로는 다를 수 있음.
vi .profile
-----------------------------------------------------------------------------
export M3_HOME=/usr/local/maven
export M3=$M3_HOME/bin
export PATH=$PATH:$M3
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home
alias ls="ls -v"
alias ll="ls -lv"
-----------------------------------------------------------------------------
1-5 프로파일 적용
source .profile
1-6 메이븐 설치 확인
mvn -version
2. maven install at Windows
2-1 download maven
http://maven.apache.org/download.cgi > apache-maven-3.x.x-bin.zip
2-2 압축풀기
압축을 특정 폴더에 푼다. (예 D:\maven\)
2-3 환경변수 등록
2-3-1 컴퓨터 아이콘에 오른클릭 후 속성 (혹은 윈도우 로고 + pause키)
2-3-2 고급 시스템 설정 > 고급 탭 > 환경변수 버튼
2-3-3 시스템 변수 부분에서 새로 만들기 버튼
2-3-3-1 변수이름: MAVEN_HOME // 변수 값 : MAVEN을 압축 해제한 폴더
2-3-4 기존 시스템 변수에 추가
2-3-4-1 기존 변수이름 : Path // 추가 할 변수 값 : %MAVEN_HOME%\bin;
** 변수 값 추가 전 끝 부분이 세미콜론(;)으로 되어 있는지 확인하고
추가 후 마지막 부분을 세미콜론(;)으로 해 주어야 함.
2-3-5 java가 설치되어 있어야 하며 JAVA_HOME이 설정되어 있어야 함
설정방법은 메이븐과 동일 단 이름과 변수의 폴더 위치만 바뀜
예) 변수이름: JAVA_HOME // 변수 값 : JAVA를 압축 해제한 폴더
2-4 설치 확인
2-4-1 [윈도우 로고 + R] 로 실행창을 열고 cmd 입력 후 확인
2-4-2 자바 버젼 확인 : java -version
2-4-3 메이븐 버젼 확인 : mvn -version
-- !끝! --
2. MSSQL
Microsoft SQL은 메이븐이 자동으로 배포를 안해준다 ㅡㅡ
해당 jar를 수동으로 설치해 주고 pom.xml에 등록 후 확인해 보면 된다....
각 PC에서 죄다 해줘야 한다 ㅠㅠ
일단 다운로드~
2-1 다운로드 (참고로 3.0 이랑 4.0 이랑 지원하는 자바 버젼이 다르다.)
http://www.microsoft.com/en-us/download/details.aspx?id=11774
2-2 터미널로 다운받고 압축을 푼 jar 위치로 가서
mvn install:install-file -Dfile=sqljdbc4.jar
-DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0
-Dpackaging=jar
-- !끝!--
2014년 12월 4일 목요일
Microsoft SQL Server IP로 접속 설정
* management studio 에서 IP로 접속을 하기 위해서는
[구성관리자]에서 설정이 필요하다.
1. TCP/IP 를 사용으로 설정
2. TCP/IP 속성의 IP 주소 탭에서 해당하는 IP주소에 대하여 속성변경
3. 서비스 재 시작
1. 네트워크 구성 > SERVER에 대한 프로토콜 > TCP/IP를 사용으로 설정
2. TCP/IP를 마우스 오른클릭 > 속성 선택 >사용하고자 하는 IP 주소를 찾아서
* TCP 동적 포트 : 0
* TCP 포트 : 1443
* 사용 : 예
* 활성 : 예
3. 서비스 탭의 SQL SERVICE 항목 오른클릭 > 다시 시작 선택
[구성관리자]에서 설정이 필요하다.
1. TCP/IP 를 사용으로 설정
2. TCP/IP 속성의 IP 주소 탭에서 해당하는 IP주소에 대하여 속성변경
3. 서비스 재 시작
1. 네트워크 구성 > SERVER에 대한 프로토콜 > TCP/IP를 사용으로 설정
2. TCP/IP를 마우스 오른클릭 > 속성 선택 >사용하고자 하는 IP 주소를 찾아서
* TCP 동적 포트 : 0
* TCP 포트 : 1443
* 사용 : 예
* 활성 : 예
3. 서비스 탭의 SQL SERVICE 항목 오른클릭 > 다시 시작 선택
피드 구독하기:
글 (Atom)