一些建議對這個問題:撰寫動態SELECT語句
select
concat(MySourceTable,',',sid,'X',gid,'X',qid) as MySourceFieldname
from
MySchemaTable
where
SomeCriteria;
使用上聲明,我收到了名單(只有一列)字段名的。 我怎樣才能變換這在水平(字段彼此相鄰)的位置,由逗號分隔 顯示欲產生「正常」 SELECT-聲明以供進一步使用
@amixdon 輸入是:
select concat('shape_survey_990113',sid,'X',gid,'X',qid) as lsfield -- <=MySourceFieldname
from shape_questions -- <=MySchemaTable i.e. kind of dictionary
where question='result' -- <=SomeCriteria
and sid=990113
and language='en'
order by lsfield;
結果輸入的看起來像這樣(例如)
lsfields
---------
shape_survey_990113.990113X468X729,
shape_survey_990113.990113X469X733,
shape_survey_990113.990113X470X737,
....,
說明:SID,GID,QID是從一個表,相當於一個字典採取數字內容這是源SYST我想從中選擇信息(不能更改)。這是一個開源調查工具。在這個表格中,每個調查的所有信息都被處理(數字值990113表示一個特殊的調查,上面的concat是包含問題答案的最終字段名稱) 'shape_survey_990113'是用於選擇firlds來自:
這一選擇的結果應該是這樣的一個可以寫入
shape_survey_990113.990113X235X476, shape_survey_990113.990113X235X484, shape_survey_990113.990113X235X496
..to在接下來的步驟中使用,使一些變量 (如SET @MyFields = ...)提出一個真實的選擇陳述,如:
concat('SELECT ', @MyFields, ' FROM shape_survey_991103;')
可惜我不能上傳截圖堡壘這一點,沒有足夠的聲譽....
可以顯示示例數據和預期結果嗎? – Jens
只是使用group_concat圍繞你已經有的 – amdixon
請也張貼一些示例輸入和期望的輸出 – amdixon