我想知道如何在我的 R user-defined function
下方传递2个字符 sql.r<-function(x,y){
# Load RODBC package
library(RODBC)
# Create a connection to the database called "con"
con <- odbcConnect("odbccalc", uid=xxx, pwd=xxx, believeNRows=FALSE)
# Check that connection is working (Optional)
odbcGetInfo(con)
# Find out what tables are available (Optional)
Tables <- sqlTables(con, schema="tblData")
# Query the database and put the results into the data frame "dataframe"
dataframe <- sqlQuery(con, "
SELECT lbl,Date, dot
FROM
tblData t
WHERE t.lbl="'',x,"''
AND t.Date <"'',y,"''
ORDER BY t.Date desc")
,并希望有人可以为此提供帮助:
quotes
语法问题可能在于sqlQuery(con, "
SELECT lbl,Date, dot
FROM
tblData t
WHERE t.lbl='fruit'
AND t.Date < '2015-06-01'
ORDER BY t.Date desc")
。
工作语法,如果有帮助:
pygame.Rect()
最佳,
答案 0 :(得分:2)
您必须通过@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getInstalledApps(this);
ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.activity_listview, results);
ListView listView = (ListView) findViewById(R.id.mobile_list);
listView.setAdapter(adapter);
listView.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
//your code here
}
或paste
构建查询。试试这个:
paste0
关键是 dataframe <- sqlQuery(con, paste0("
SELECT lbl,Date, dot
FROM
tblData t
WHERE t.lbl='",x,"'
AND t.Date <'",y,"'
ORDER BY t.Date desc"))
需要两个参数:sqlQuery
和一个字符串。该字符串是您要执行的connection
命令。如果命令取决于某些输入,则必须相应地构建字符串。 sql
和paste
允许您这样做。您将sprintf
和x
变量的值放在表示命令的字符串中。这不是特定于SQL的,而只是标准的字符串操作。
答案 1 :(得分:2)
正如其他人所说,您可以使用paste
或paste0
来构建查询。但是,sprintf
函数也可以解决问题。我认为这更容易阅读,因为你避免使用混合的单引号和双引号。
即。在你的函数中执行以下操作:
query <- sprintf("SELECT lbl, Date, dot
FROM
tblData t
WHERE t.lbl= '%s'
AND t.Date < '%s'
ORDER BY t.Date desc", x, y)
sqlQuery(con, query)