我有我的表DDL和數據是這樣的:更新一個從另一列基於SQL Server中不同的情況下
create TABLE #TEMP_STATE
(
ID [char](20) NOT NULL,
[STATE] [char] (20) not null,
TELEphonh [char](20) NULL,
TELEPHONW [char](14) NULL,
dp [char](8) null,
pp [char](8) null,
Cid [char](16) null
)
我想實現如下:
情況1:當「PP」爲空時,檢查「狀態」列,如果「狀態」列沒有「單元格」或「C」或「M」,則將「狀態」列值移動到「PP」
情況2:當「狀態」列中具有「小區」,並且如果「TELEPHONW」級聯的數是空白的,然後移動「狀態」的列的值,以「TELEPHONW」
情況3:當「國家」一欄有串連了一些‘細胞’,如果‘TELEPHONH’是空白的,然後將‘國家’列的值改爲‘TELEPHONH’
注意:State
列可以是數據後空白移動到其他相應的列
這樣,輸出應該是這樣的:
我想這樣的代碼:
update #TEMP_STATE
set TELEPHONH = CASE
WHEN TELEPHONH like '' and TELEPHONW like '' and
PATINDEX('%cell%',SUBSTRING([STATE],NULLIF(PATINDEX('%cell%', [STATE]
),0),LEN([STATE])-1)) > 0
THEN TELEPHONH = [STATE] ELSE [STATE] END,
WHEN TELEPHONH like '' and TELEPHONW like '' and PATINDEX('%
(C)%',SUBSTRING([STATE],NULLIF(PATINDEX('%(C)%', [STATE]
),0),LEN([STATE])-1)) > 0
THEN TELEPHONH = [STATE] ELSE [STATE] END
FROM #TEMP_STATE
希望我已經解釋正確此。 但是,我收到語法錯誤?我能否在案件中爲其分配一列值?
有沒有其他方法可以達到預期效果?謝謝。
DP的條件是什麼?你是隻在尋找1個更新語句還是多個更新都沒問題? –
嘗試將'Like'''更改爲'IS NULL'。 –