我有一個寫入GET DATA命令的 SQL 查詢。它按原樣完美運行,但現在我想修改它以從我當前的資料集中獲取字串值。
示例查詢 -
SELECT * FROM TABLE WHERE field IN ('AAA', 'BBB', 'CCC', 'DDD')
我希望括號中的串列是我的資料集中已經存在的字串值(參考 -以前的帖子)
迄今為止,我已經嘗試了幾件事,包括在命令/SQL部分使用連接字串。GET DATA對于連接,我嘗試參考欄位本身和臨時變數。
我還嘗試使用變數作為輸入通過宏呼叫命令。不幸的是,SQL 字串只通過變數名而不是它的內容。
我看過一些帖子建議在WRITE OUT類似用例中使用該命令,但沒有發現任何關于連接到 SQL 查詢的資訊。這會是我唯一的選擇嗎?
uj5u.com熱心網友回復:
在我看來對你來說write out是個不錯的選擇。
假設您有一行資料,其中myconcat的值為“ 'AAA', 'BBB', 'CCC', 'DDD'”(如果資料中的資料多于一行,則首先僅選擇一行):
select if (the row with the full concatenated list) .
string cmd (a2000).
compute cmd=concat("define !mysqlcommand() 'SELECT * FROM TABLE WHERE field IN (", rtrim(myconcat), ")' !enddefine.").
write out = "path\create val list macro.sps" /cmd.
execute.
insert file = "path\create val list macro.sps".
該代碼撰寫了一個新的語法檔案,并在其中創建了一個宏呼叫。命令運行后insert,理論上你定義了一個宏,所以當你!mysqlcommand在語法中使用宏呼叫時,它會自動寫入你創建的完整 SQL 命令,所以:
.
.
/sql = !mysqlcommand
.
.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/517933.html
標籤:sql句法spss
上一篇:如何根據多列中的值進行查詢
