|
mdhingra01
Posting Yak Master
179 Posts |
Posted - 2004-10-01 : 11:23:35
|
| I am building a lookup table (RANK_DIM) with the follwoing structure:RANK_KY int 4 NOT NULLRANK_CD char 9 RANK_NM_EN char 9RANK_NM_FR char 9RANK_LVL_CD char 2RANK_LVL_NM_EN char 9RANK_LVL_NM_FR char 9CREATED_BY varchar 15CREATED_DATE smalldatetime 4 NOT NULLUPDATED_BY varchar 15UPDATED_DATE smalldatetime 4 NOT NULLThe following is some sample data from HRMISRANKAOH03 AR 01 AR 02 CADET CCM10 CCM11 CCM12 DAC93 DACON 02 DACON 03 LSIM 05 LSPRO 01 LSPRO 02 LSSE 02 ROTARYWIN The following is the query I am using to populate the RANK_LVL_CD the table.Select CASEWHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '0%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '1%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '2%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '3%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '4%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '5%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '6%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '7%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '8%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '9%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))ENDfrom workapp..newrankNow I want to put the alpha part of the hrmisrank into RANK_CD of the RANK_DIM table. Is there any easy way to do this taking into account the different data we have in the hrmisrank column.I tried using the followingin an update statement, but got the following error: Server: Msg 156, Level 15, State 1, Line 3Incorrect syntax near the keyword 'Select'.The update statement is :UPDATE RANK_DIMSET RANK_LVL_CD=Select CASEWHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '0%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '1%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '2%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '3%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '4%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '5%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '6%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '7%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '8%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))WHEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))LIKE '9%' THEN LEFT(LTRIM(HRMISRANK),(len(HRMISRANK)-2))ENDfrom workapp..newrankIf I run this as a select it works. Anyone know why???? |
|