database/mssql

[mssql] 레벨 번호, upper menu 쿼리하기

labj 2012. 11. 13. 17:22

[mssql] 레벨 번호, upper menu 쿼리하기

 

-- 메뉴 레벨 조회
select
 'update menu set ',
 CASE WHEN LEN(menucode) = 2 THEN 'LVL=1'
  WHEN LEN(menucode) = 4 THEN 'LVL=2'
  WHEN LEN(menucode) = 6 THEN 'LVL=3'
  WHEN LEN(menucode) = 8 THEN 'LVL=4'
  WHEN LEN(menucode) = 10 THEN 'LVL=5'
 ELSE 'LVL=0'
 END AS lvl,
 ' where menu_idx = ',
 MENU_IDX,
 ';'
from MENU;


-- upper menu 조회
select
 'update menu set ',
 CASE
  WHEN LEN(menucode) = 2 THEN 'UPPER_MENU_ID = ''***'' '
  WHEN LEN(menucode) = 4 THEN 'UPPER_MENU_ID = '''+  SUBSTRING(menucode,1,2)  +''' '
  WHEN LEN(menucode) = 6 THEN 'UPPER_MENU_ID = '''+  SUBSTRING(menucode,1,4)  +''' '
  WHEN LEN(menucode) = 8 THEN 'UPPER_MENU_ID = '''+  SUBSTRING(menucode,1,6)  +''' '
  WHEN LEN(menucode) = 10 THEN 'UPPER_MENU_ID = '''+  SUBSTRING(menucode,1,8)  +''' '
 ELSE ''
 END AS lvl,
 ' where menu_idx = ',
 MENU_IDX,
 ';'
from MENU;

 

[mssql] 레벨 번호, upper menu 쿼리하기