[英]Check column value and update another column value from same table
我有 2 個表表 A 和表 B。根據連接表 A 和表 B 的某些條件,我將值插入表 C。
在表 C 中,我通過使用 insert into select 查詢來插入值。 假設表 C 有 4 列,我的第 2 列值取決於第 1 列值,即,如果第 1 列值 <0,則將第 2 列值插入為“F”或“T”。 那么如何通過計算同一表中第 1 列的值將值插入第 2 列。
架構:
INSERT INTO #TableC
SELECT
B.STORE AS WS_AUTH_STR,
(CASE
WHEN (B.DATE /17) = substring(cast([A_EXT_AUTH_CD] as varchar(10)),1, 4) THEN (B.DATE /17)
WHEN (B.DATE /17) = substring(cast([A_EXT_AUTH_CD] as varchar(10)),2, 5) THEN (B.DATE /17)
WHEN (B.DATE /17) = substring(cast([A_EXT_AUTH_CD] as varchar(10)),3, 6) THEN (B.DATE /17)
WHEN (B.DATE /23) = substring(cast([A_EXT_AUTH_CD] as varchar(10)),1, 4) THEN (B.DATE /23)
WHEN (B.DATE /23) = substring(cast([A_EXT_AUTH_CD] as varchar(10)),2, 5) THEN (B.DATE /23)
WHEN (B.DATE /23) = substring(cast([A_EXT_AUTH_CD] as varchar(10)),3, 6) THEN (B.DATE /23)
ELSE A_AUTH_CD
END) AS WS_AUTH_AUTH_CODE,
COLUMN N
FROM TableA A
INNER JOIN TableB B ON A.STORE = B.STORE;
為了插入到列 N,首先我需要檢查 WS_AUTH_AUTH_CODE 值。 如果是 (B.DATE /17),則在此列中插入 1,否則插入 2。
您可以使用 CASE 來實現您的要求。 選擇語句如下-
INSERT INTO....
....
SELECT A.Some_column AS Column_1,
CASE
WHEN A.Some_column = 0 THEN 'F'
ELSE 'T'
END AS Column_2
FROM Some_table A
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.