我需要將 sas 代碼更改為 PostgreSQL。但我無法理解這段代碼。請幫我將以下代碼翻譯成 SQL 代碼。
data fc_action_v1;
set action_targets;
Region_mod = upcase(region);
rename '2nd_Item_nr'n = Prodnumber;
run;
上面的 sas 代碼是否等同于下面的 sql 代碼?
create table data fc_action_v1 as
select
region_mod as region,
2nd_item_nr as prodnumber
from action_targets
或以上的sas代碼是什么意思?從 action_targets 創建表資料 fc_action_v1 作為 select *,region_mod 作為 region,2nd_item_nr 作為 prodnumber
或者是其他東西?請幫我把上面的 sas 代碼翻譯成 PostgreSQL SQL
uj5u.com熱心網友回復:
在 SQL 中,您需要輸入所有要復制的變數。(繼續使用 SAS 代碼的一個原因)。
您的 SQL 沒有創建一個名為 REGION_MOD 的新變數。而且它沒有將其設定為 REGION 中的大寫版本。
我懷疑 POSTGRESQL 對以數字開頭的變數名會遇到與 SAS 相同的問題,因此請使用 POSTGRESQL 支持的任何語法來參考非標準變數名。ANSI 標準應支持使用帶引號的名稱。(但請注意您在名稱中使用的情況,因為 PostgreSQL 對變數名的情況有奇怪的規則)。
所以更像是:
create table fc_action_v1 as
select var1
, region
, var2
, "2nd_item_nr" as prodnumber
, var3
, upper(region) as region_mod
from action_targets
其中 var1、var2 和 var3 只是為了說明您需要列出所有變數(按照您希望它們出現在資料集中的順序)。SAS 資料步將添加新變數 REGION_MOD 作為資料集中的最后一個變數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/527315.html
上一篇:postgres更改表列被跳過
