如何在SQL中執行以下語句?我目前正在使用SAS和不能得到它的工作非常感謝SQL和SAS編程
if substr(variable,1,2)='X' then variable='Peter';
else if substr(variable,1,2)='XX' then vairable='Paul';
else variable='UNKNOWN';
如何在SQL中執行以下語句?我目前正在使用SAS和不能得到它的工作非常感謝SQL和SAS編程
if substr(variable,1,2)='X' then variable='Peter';
else if substr(variable,1,2)='XX' then vairable='Paul';
else variable='UNKNOWN';
使用的UPDATE
聲明以CASE
表達:
UPDATE yourTable
SET variable = CASE WHEN SUBSTR(variable, 1, 1) = 'X' THEN 'Peter'
WHEN SUBSTR(variable, 1, 2) = 'XX' THEN 'Paul'
ELSE 'UNKNOWN'
END
爲什麼UPDATE而不是PROC SQL? – Reeza
我假設他想要查詢,但也許我錯了。 –
試試這個:
proc sql;
select *,case when substr(variable,1,2)='X' then 'Peter';
else when substr(variable,1,2)='XX' then 'Paul';
else 'UNKNOWN' end as variable
from yourfile;
quit;
感謝所有得到它的工作與你的幫助..在SQL比我以前的SAS數據步驟運行更快。再次感謝 – Louise13
這是在PROC SQL?你有什麼特別的問題? IF轉換爲CASE,但SUBSTR是相同的。 – Reeza
@Reeza第一個子字符串永遠不會是真的,因爲它選擇兩個字符並將它與單個字母進行比較。 –
@TimBiegeleisen我注意到了,但認爲這是爲了說明的目的。還有一個MySQL標籤,所以這可能不是SAS SQL。 – Reeza