小编Moi*_*Ash的帖子

无法从标量中提取元素

我有 2 表公司和联系人。联系人具有地址 JSONB 列。我在contacts.linked_to_company 上尝试了一个带有join 的select 语句并使用jsonb_array_elements(company.addresses) 但我收到错误“无法从标量中提取元素”,我理解这是因为某些条目在列地址中确实有[null]。我已经看到了使用合并或 CASE 语句的答案。Coalesce 我可能无法工作,CASE 示例在 select 语句中,如何在连接中使用它?这是sql

SELECT company.id,
trading_name, 
nature_of_business, 
t.id contactID, 
address->>'PostCode' Postcode,
position_in_company
FROM contact t FULL JOIN company ON (t.company_linked_to = company.id ),
jsonb_array_elements(t.addresses) address
  WHERE
 t.company_linked_to ='407381';
Run Code Online (Sandbox Code Playgroud)

这是示例 jsonb

[{"PostCode":"BN7788","Address":"South Street","AddressFull":"","Types":[{"Type":"Collection"}]}]
Run Code Online (Sandbox Code Playgroud)

sql postgresql json jsonb

5
推荐指数
1
解决办法
8473
查看次数

为什么Golang http.ResponseWriter执行被延迟?

我正在尝试在收到请求后立即发送页面响应,然后处理一些内容,但我发现响应不会"先发送",即使它是代码序列中的第一个.在现实生活中我有一个页面用于上传一个excel表,它被保存到数据库中,需要花费时间(50,0000多行),并希望更新到用户进度.这是一个简化的例子; (根据你有多少RAM你可能需要添加几个零来计数器来查看结果)

package main

import (
    "fmt"
    "net/http"
)

func writeAndCount(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Starting to count"))

    for i := 0; i < 1000000; i++ {

        if i%1000 == 0 {
            fmt.Println(i)
        }
    }
    w.Write([]byte("Finished counting"))

}

func main() {
    http.HandleFunc("/", writeAndCount)
    http.ListenAndServe(":8080", nil)

}
Run Code Online (Sandbox Code Playgroud)

http server-push go

3
推荐指数
2
解决办法
1492
查看次数

标签 统计

go ×1

http ×1

json ×1

jsonb ×1

postgresql ×1

server-push ×1

sql ×1