在第1列我有4個值
N
不
Y
有
我試圖用以下代碼將N替換為No,將Y替換為Yes
。UPDATE nashupdated
SET SoldAsVacant = REPLACE(SoldAsVacant, "N", "No")。
SoldAsVacant = REPLACE(SoldAsVacant, "Y", "Yes")。
然而,它也替換了 "Yes "中的 "Y",例如,變成了 "Yeses"
。我應該如何寫這個函式,使它只尋找整個字串?
uj5u.com熱心網友回復:
使用一個IF,你可以這樣做
UPDATE nashupdated
SET SoldAsVacant = IF(SoldAsVacant = 'N'/span>, 'No'/span>, SoldAsVacant ) 。
SoldAsVacant = IF(SoldAsVacant = 'Y', '是', SoldAsVacant )。
這將測驗該列的現有值,如果匹配則將其設定為新值,如果不匹配則將其設定為現有值。
uj5u.com熱心網友回復:
UPDATE nashupdated
SET SoldAsVacant = REPLACE(SoldAsVacant, "N", "No")。
SoldAsVacant = REPLACE(SoldAsVacant, "Y", "Yes")
WHERE SoldAsVacant IN ('Y'/span>, 'N'/span>);
這比IF/CASE更有用,特別是當SoldAsVacant被索引時。
uj5u.com熱心網友回復:
簡單的方法
UPDATE nashupdated set SoldAsVacant ='Yes' Where SoldAsVacant ='Y';
UPDATE nashupdated set SoldAsVacant ='No' Where SoldAsVacant ='N'。
uj5u.com熱心網友回復:
使用一個CASE運算式:
UPDATE nashupdated
SET SoldAsVacant = CASE SoldAsVacant
WHEN 'N' THEN 'No'
WHEN 'Y' THEN 'Yes'
結束
WHERE SoldAsVacant IN('Y', 'N')。
或者:
UPDATE nashupdated
SET SoldAsVacant = CASE WHEN SoldAsVacant= 'N' THEN 'No' ELSE 'Yes' END
WHERE SoldAsVacant IN ('Y'/span>, 'N'/span>);
uj5u.com熱心網友回復:
一個有趣的方法是使用一個派生表來查詢值:
update nashupdated n join
(select 'N as old_value, 'No' as new_value union all
select 'Y'/span> as old_value, 'Yes' as new_value
) x
on n.SoldAsVacant = x.old_value
set n.SoldAsVacant = x.new_value。
這種方法的好處是,join只過濾到需要更新的行,而且值只被提到一次。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/306807.html
標籤:
上一篇:如何將計量單位作為單數名詞?
