У меня есть сложный json из базы данных космоса с fsid и fpid в строковом формате. Я перемещаю данные в sql, где они являются целыми числами. Я не могу получить значение, прочитанное из космоса для этого конкретного столбца, и преобразовать его в int.
пример JSON:
{
"id": "test",
"documentType": "testing",
"content": {
"id": "test1",
"current": {
"fsid": "PP",
"fpid": "2021",
"publishStatus": "Draft"
},
"released": null,
"name": "PPGG"
},
"date": "0001-01-01T00:00:00+00:00",
"_ts": 111
}
Цель:
Пытался:
Я пробовал использовать производный столбец toInteger(content.current.fsid)
, но он читает ноль.
Кроме того, я пробовал использовать cast
, но я не получаю само имя столбца и показываю только столбцы верхнего уровня.
Любое предложение, пожалуйста?
Получите значение для fsid и преобразуйте его в целое число для передачи приемника SQL на основе условия. Например, если fsid — PP, получите int значение 1, если fsid — QQ, получите значение 2
Поскольку ваш fsid
находится в строке, например, PP или любых других символов. Если вы попытаетесь преобразовать в целое число, символы строки будут прочитаны как нулевые.
Когда вы преобразуете его в целое число на основе условия, вам нужно использовать производный столбец с условием IIF или оператором случая, как показано ниже:
Выражение:
fsid : iif (content.current.fsid=='PP',1,iif (content.current.fsid=='QQ',2,0))
//if fsid == PP then 1 else check fsid == QQ if it true then 2 if both conditions are not matching then 0
Предварительный просмотр данных:
преобразовать дату в формат данных и времени sql
Вы можете использовать преобразование приведения для преобразования даты в необходимый формат, как показано ниже:
Спасибо, я нашел колонку, используя
Select
, а затемCase
. Я воспользовался вашим предложением, чтобы назначить дату, и это сработало. Спасибо.