如何转换在数据库中存储为字符串的值52:35
,并且我希望PostgreSQL DB中的BigInt值中只有52
作为查询。
我尝试了以下查询
select cast(substr(a,1,strpos(a,':')-1) AS bigint) as value from abc
它返回了一个错误“不允许负子字符串长度”
答案 0 :(得分:1)
当遇到不包含冒号const page1 = await browser.newPage();
await page1.goto('https://www.google.com');
const page2 = await browser.newPage();
await page2.goto('https://www.bing.com');
const pageList = await browser.pages();
console.log("NUMBER TABS:", pageList.length);
//switch tabs here
await page1.bringToFront();
//Do something... save as pdf
await page2.bringToFront();
//Do something... save as pdf
的值时,该查询将失败。仅当值包含冒号时,才使用$(document).ready(function () {
setInterval(function () {
$('#RoomBlock').children('div').each(function () {
ShowRoom($(this).attr('id'));
});
}, 10000);
function ShowRoom(id) {
/* Add some loader here (bar or image)*/
var loaderHtml = "<div id='loader_'+id>_____Add your loader code here_____</div>";
$('#' + id).append(loaderHtml);
$.ajax({
type: "POST",
async: false,
url: "/localhost/GetData/" + id
success: function (response) {
if (response != null) {
$('#' + id).empty();
$('#loader_'+ id).remove();
$('#' + id).append(response);
} else {
alert("null");
$('#loader_'+ id).remove();
}
},
error: function (response) {
alert("error!");
}
});
})
构造尝试提取。像(未经测试的)
:
对于case...when...else...end
案例,请替换您需要的任何内容。可能还有一种方法可以使用CASE WHEN strpos(a,':') > 0
THEN cast(substr(a,1,strpos(a,':')-1) AS bigint
else null
END
而不是上述方法,但是我无法找到文档说明如果分隔符不存在会发生什么。
答案 1 :(得分:1)
您可以使用split_part(string text, delimiter text, field int)
postgres=# select split_part('52:35', ':', 1)::bigint;
split_part
------------
52
postgres=# select split_part('52', ':', 1)::bigint;
split_part
------------
52