2016-12-02 58 views
-2

如何在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'; 
+0

這是在PROC SQL?你有什麼特別的問題? IF轉換爲CASE,但SUBSTR是相同的。 – Reeza

+0

@Reeza第一個子字符串永遠不會是真的,因爲它選擇兩個字符並將它與單個字母進行比較。 –

+0

@TimBiegeleisen我注意到了,但認爲這是爲了說明的目的。還有一個MySQL標籤,所以這可能不是SAS SQL。 – Reeza

回答

0

使用的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 
+0

爲什麼UPDATE而不是PROC SQL? – Reeza

+1

我假設他想要查詢,但也許我錯了。 –

0

試試這個:

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; 
+0

感謝所有得到它的工作與你的幫助..在SQL比我以前的SAS數據步驟運行更快。再次感謝 – Louise13