在Postgres:
select 'test' || null returns null
Run Code Online (Sandbox Code Playgroud)
我原以为它会返回'测试'.
这是理想的行为吗?使用null值进行字符串连接会使整个字符串无效,这似乎很奇怪......
参考pg docs:http://www.postgresql.org/docs/9.1/static/functions-string.html
"注意:在PostgreSQL 8.3之前,由于存在从这些数据类型到文本的隐式强制,这些函数也会默默地接受几种非字符串数据类型的值.这些强制被删除了,因为它们经常引起令人惊讶的行为. ,字符串连接运算符(||)仍然接受非字符串输入,只要至少有一个输入是字符串类型,如表9-6所示.对于其他情况,如果需要,请在文本中插入显式强制复制以前的行为."
鉴于此,使用他们的concat字符串函数示例:
concat(str"any"[,str"any"[,...]])text连接所有参数.NULL参数被忽略.concat('abcde',2,NULL,22)>> abcde222
我应该习惯'||'来解决这个问题 串联还是这个应该修复的东西?
我正在修补firebase并对数据结构感到好奇.浏览到我的数据库,firebase允许我修改数据库中的结构和数据.但似乎firebase仅支持对象(以及列表的字典).
我想知道是否支持数组.我还想知道字典项是否可以用整数命名 - firebase接口只插入字符串作为名称,这使我关心订购记录.
以下是通过firebase接口创建的json示例:
{
"dg":{
"users":{
"rein":{
"searches":{
"0":{
"urls":"http://reinpetersen.com,http://www.reinpetersen.com",
"keyphrases":"rein petersen,reinsbrain,programmer turned kitesurfer"
}
}
},
"jacqui":{
"searches":{
"0":{
"urls":"http://www.diving-fiji.com,http://diving-fiji.com",
"keyphrases":"diving marine conservation, diving fiji"
}
}
}
},
"crawl_list":{
"1":{
"urls":"http://www.diving-fiji.com,http://diving-fiji.com",
"keyphrases":"diving marine conservation, diving fiji"
},
"0":{
"urls":"http://reinpetersen.com,http://www.reinpetersen.com",
"keyphrases":"rein petersen,reinsbrain,programmer turned kitesurfer"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
显然,对于我的列表,我希望字典项名称是整数,所以我可以确保排序是正确的.
我一直在阅读firebase文档,它是非常使用的异步代码.我想知道firebase是否在回调中抛出错误和/或传递错误数据.据我所知,文档没有提到它.提前感谢您的建议
我尝试在 INSERT 语句后使用“RETURNING”关键字,以允许将插入的行数据作为 json 返回 - 我想要所有字段。这是我尝试过但没有成功的方法:
CREATE OR REPLACE FUNCTION createUser(
email_f character varying(50),
nickname_f character varying(16)
) RETURNS json AS $$
BEGIN
INSERT INTO users (email,nickname)
SELECT email_f,nickname_f
RETURNING row_to_json(row(*));
END;
$$ LANGUAGE 'plpgsql';
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误:错误:“*”处或附近的语法错误
我在这里可能做错了什么?我想继续使用“返回”关键字,因为它似乎是最好的方法 - 前提是我能让它发挥作用......