2017-10-01 12 views
0

IRおよびSQLクエリ一緒フォーマット

UKSQL6<-data.frame(sqlQuery(myConn, paste("SELECT TOP 100 [AxiomaDate] 
         ,[RiskModelID] ,[IID],[Factor1],[Factor2],[Factor3],[Factor4]FROM [PortfolioAnalytics].[Data_Axioma].[SecurityExposures] 
         Where AxiomaDate IN (
         SELECT MAX(AxiomaDate) 
         FROM  [PortfolioAnalytics].[Data_Axioma].[FactorReturns] 
            GROUP BY MONTH(AxiomaDate), YEAR(AxiomaDate) 
         AND IID IN (", paste(ID, collapse = ", "), ")"))) 

今、私はRで

ID<-c("‘3CS3PJ478’, ‘N6LQ1CMW1’, ‘4J9GNYHC8’, ‘6H8D3A1P0’") 

SQLクエリRを介してSQLクエリに入力しようとしているIDの次のリストを持っているとき、I (クエリの最後の行に)IDを貼り付けます。正しい形式でないため、クエリが機能しません。 IDオブジェクトの最初と最後の文字はSQLクエリでは機能しない ""です。上記のクエリと互換性があるように簡単に取り除くことはできますか?

+0

文字をバックスラッシュでエスケープする\ – erasmortg

+0

申し訳ありませんが、私はこれを行うことができるコードの場所を教えてください。 – user8491385

答えて

2

残念ながら、パラメータとしてSQLにリストを渡すことはできません。だから、あなたはクエリ文字列をmungeする必要があります。

私はこれが何をしたいんだと思う:

IID IN ('", paste(ID, collapse = "', '"), "')"))) 

単一引用符は文字列値のために必要とされます。

+0

これは私が必要とするものに非常に近いものですが、クエリがそこではうまく機能していません。あなたの答えのペーストIDの出力は...( '3CS3PJ478'、 'N6LQ1CMW1'、 '4J9GNYHC8'、 '6H8D3A1P0' ')です。私は最初に、SQLは上の "引用符ではなく"で動作することに気付きました。また、あなたのソリューションでは、最後の括弧は ')'で囲まれています。これはSQLでは読めません。どのような助けが大いに感謝! – user8491385

+0

@ user8491385。 。 。この回答には中括弧の一重引用符はありませんので、カット/ペーストから来ています。最後の括弧はその前に一重引用符だけがあります。私は外側の引用がどこから来るのか分からない。 –

関連する問題