Size: a a a

pgsql – PostgreSQL

2021 March 10

SS

Steel Sword in pgsql – PostgreSQL
Cedo Alteram
эээ, создавать прямо в этой таблице?
Наверняка в возврате
источник

CA

Cedo Alteram in pgsql – PostgreSQL
Steel Sword
Наверняка в возврате
да разное от новичков в xSQL слышишь
источник

SS

Steel Sword in pgsql – PostgreSQL
Денис Тырышкин
Всем привет, я только изучаю  postgeSQL.  Гуглил, но что-то не могу понять как это сделать.
Задача у меня такая.
Нужно взять из таблицы две колонки A и B  со всеми строчками,  и дальше создать новую колонку С в которой будет значение по условию: Если А равно 1 или 0, то брать значение из колонки А , а если и любое другое значение, то брать из колонки В и записывать это в колонку С. И так для каждой строчки. Если кто-то сможет подсказть будет очень хорошо.
На python помощью pandas это так быстро решается, а вот как написать запрос на SQL не пойму.
Тебе наверное CASE подойдет
источник

CA

Cedo Alteram in pgsql – PostgreSQL
Steel Sword
Тебе наверное CASE подойдет
тут можо IF
источник

ДТ

Денис Тырышкин... in pgsql – PostgreSQL
Cedo Alteram
эээ, создавать прямо в этой таблице?
Да нужно прям в таблице создать там уже есть данные
источник

Я💆

Яросlove 💆 in pgsql – PostgreSQL
Подскажите, пожалуйста, как вернуть рандомную запись по запросу? Нет встроенного механизма в постгресе для этой задач?
источник

CA

Cedo Alteram in pgsql – PostgreSQL
Денис Тырышкин
Да нужно прям в таблице создать там уже есть данные
тебе новую колонку на лету создать нужно? КОторой в структуре ещё нет?
источник

CA

Cedo Alteram in pgsql – PostgreSQL
Соре, так нельзя, сначала нужен ALTER
источник

ДТ

Денис Тырышкин... in pgsql – PostgreSQL
Cedo Alteram
тебе новую колонку на лету создать нужно? КОторой в структуре ещё нет?
Колонку добавить смогу, как ее заполнить значениями по условию?
источник

CA

Cedo Alteram in pgsql – PostgreSQL
Денис Тырышкин
Колонку добавить смогу, как ее заполнить значениями по условию?
выше написали. CASE/IF гугли
источник

ДТ

Денис Тырышкин... in pgsql – PostgreSQL
Cedo Alteram
выше написали. CASE/IF гугли
Так гуглил уже, поэтому сюда и написал
источник

CA

Cedo Alteram in pgsql – PostgreSQL
Я не помню точный синтаксис
источник

ДТ

Денис Тырышкин... in pgsql – PostgreSQL
на python все просто
def make_c(row):
   a = row['a']
   b = row['b']
   if a == '0' or a == '1':
       return a
   else:
       return b
df['c'] = df.apply(make_c, axis=1)

Как это на sql написать?
источник

DN

Dmitriy Novikov in pgsql – PostgreSQL
Денис Тырышкин
на python все просто
def make_c(row):
   a = row['a']
   b = row['b']
   if a == '0' or a == '1':
       return a
   else:
       return b
df['c'] = df.apply(make_c, axis=1)

Как это на sql написать?
тоже самое вроде
источник

ДТ

Денис Тырышкин... in pgsql – PostgreSQL
Dmitriy Novikov
тоже самое вроде
а синтаксис запроса какой?
источник

CA

Cedo Alteram in pgsql – PostgreSQL
Сейчас
источник

a

ad77root in pgsql – PostgreSQL
Денис Тырышкин
на python все просто
def make_c(row):
   a = row['a']
   b = row['b']
   if a == '0' or a == '1':
       return a
   else:
       return b
df['c'] = df.apply(make_c, axis=1)

Как это на sql написать?
источник

DN

Dmitriy Novikov in pgsql – PostgreSQL
ну так case/if
источник

AB

Andrew Bille in pgsql – PostgreSQL
Яросlove 💆
Подскажите, пожалуйста, как вернуть рандомную запись по запросу? Нет встроенного механизма в постгресе для этой задач?
В конец любого запроса order by random() limit 1
источник

АГ

Алина Головлева... in pgsql – PostgreSQL
Денис Тырышкин
Всем привет, я только изучаю  postgeSQL.  Гуглил, но что-то не могу понять как это сделать.
Задача у меня такая.
Нужно взять из таблицы две колонки A и B  со всеми строчками,  и дальше создать новую колонку С в которой будет значение по условию: Если А равно 1 или 0, то брать значение из колонки А , а если и любое другое значение, то брать из колонки В и записывать это в колонку С. И так для каждой строчки. Если кто-то сможет подсказть будет очень хорошо.
На python помощью pandas это так быстро решается, а вот как написать запрос на SQL не пойму.
1) создать колонку С
2) update table_name set C= case when A in (1,0) then A else B end;
источник