我刚刚开始使用 Go 中的 Couchbase,使用库 gocb。
就像尝试向我的服务器查询特定 ID 并获取结果的概念证明一样。下面是修改后的代码示例。
cOpts := gocb.ClusterOptions{
Authenticator: gocb.PasswordAuthenticator{
Username: "user",
Password: "pw",
},
}
cluster, err := gocb.Connect("couchbase://my.dev.server.net/", cOpts)
if err != nil {
panic(err)
}
qOpts := gocb.QueryOptions{}
// create query
queryStr := "SELECT * FROM myBucket WHERE id = '123456789'"
rows, err := cluster.Query(queryStr, &qOpts)
if err != nil {
panic(err)
}
fmt.Printf("rows: %v\n", rows)
for rows.Next() {
var intfc interface{}
err = rows.Row(&intfc)
if err != nil {
panic(err)
}
fmt.Printf("interface result: …Run Code Online (Sandbox Code Playgroud) 我正在创建一个SQL Server存储过程。这SELECT是我正在构建的简单查询。参数之一是寻找标志参数。如果该参数留空,则SELECT默认应为完全不包含该WHERE子句。
CREATE PROCEDURE sprocA
@flagInd int
AS
BEGIN
SELECT intID, strQuestion, strAnswer, intCategory, intOrder
FROM tblA
-- Right here is where I am looking for the logic of the @flagInd to be evaluated.....
-- if @flagInd = 1 then 'WHERE flgInd=1'
-- else if @flagInd=0 then 'WHERE flgInd=0'
-- else if @flagInd IS NULL then ''
Run Code Online (Sandbox Code Playgroud)
这只是一个简单的查询,也是我的一个简单想法,不确定是否可以在不嵌套和重写整个SELECT语句作为IF语句的一部分的情况下完成此操作。