2017-02-12 21 views
0

我表示SQL查詢的select語句的字符串,如:提供表列別名無「(和‘)’在斯卡拉

val a = "eid,year(join_dt),month(join_dt)" 

我想運行select $a from emp

我想輸入sting應該是"eid as eid, year(join_dt) as yearjoin_dt, month(join_dt) as monthjoin_dt" - 我怎樣才能執行這個字符串操作?

回答

1

不確定它是一個真正強大的解決方案(假設輸入是一個結構良好的以逗號分隔的字段列表,並且該字段名稱只有一個lphanumeric和下劃線),但是這應該這樣做:

val a = "eid,year(join_dt),month(join_dt)" 

val result = a.split(",") 
.map(s => s"$s as ${s.replaceAll("[^0-9a-zA-Z_]", "")}") 
.mkString(", ") 

println(result) 
// eid as eid, year(join_dt) as yearjoin_dt, month(join_dt) as monthjoin_dt 
+0

它的工作,非常感謝您的幫助! – bha

+0

隨時接受未來的讀者知道它的幫助。 –