[程式] SAS SQL 欄位內轉換格式
[軟體程式類別]:
請填入軟體程式類別,例如:SAS、SPSS、R、EVIEWS...等
SAS
[程式問題]:
資料處理、迴歸、敘述統計、logistic、probit...等
資料處理
[軟體熟悉度]:
請把以下不需要的部份刪除
中(3個月到1年)
[問題敘述]:
格式大概長這樣 想從資料庫裡面抓的學號格式改成常見的格式
學號 切成 不需要 A1 B1 C1
00280061 -> 00 28 00 61
A1與B1轉換成學號的格式是這樣
00~09 -> 0~9 A~Z -> 10~36
C1則是完全取用
A1_TRANS B1_TRANC C1
所以這樣轉換後 28->S 00->0 61->61 合併起來之後
會變成S061
目前我是做了另外一張轉換表欄位分別是
A1 A1_TRANS
00 0
01 1
. .
. .
. .
28 S
. .
. .
36 Z
想請問有沒有辦法用轉換表去把A1 B1轉換後 創出新的表格
目前是把切開的學號表跟轉換表INNER JOIN 然後用WHERE抓 但會出現奇怪的東西
[程式範例]:
雖然張貼程式很可怕,但基本上有些程式還是要張貼才能解決
PROC SQL;
CREATE TABLE WORK.TEST1 AS
SELECT '學號'n,
Substr('學號'n, 3,2) as 'A1'n,
Substr('學號'n, 5,2) as 'B1'n,
Substr('學號'n, 7,2) as 'C1'n
FROM LASRLIB.'學號_TEST'n
;
QUIT;
/*inner join之後在 把需要的轉換取出來*/
proc sql;
CREATE TABLE WORK.TEST2 AS
select '學號'n,
catx('','A1_TRANS'n,'B1_TRANS'n,'C1'n) as '轉換過的學號'n
from 轉換表,TEST1
where TEST1.A1=轉換表.A1 and TEST1.B1=轉換表.A1
;
quit;
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.254.125.244
※ 文章網址: http://www.ptt.cc/bbs/Statistics/M.1409138261.A.14C.html
※ MOONY135:轉錄至看板 Database 08/27 20:01
→
08/28 00:55, , 1F
08/28 00:55, 1F
→
08/28 00:56, , 2F
08/28 00:56, 2F
→
08/28 04:14, , 3F
08/28 04:14, 3F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):