Наименование колонки с пробелом в запросе sql

1. user1713496 20.08.24 09:06 Сейчас в теме
Здравствуйте. Приношу извинения, что не по теме 1с. Пишу запрос sql в python, и выдает ошибку, если название поля сделать с пробелом, при этом в каком-нибудь редакторе sql запросов ошибки нет. Пример в python "select 1+1 "число целое""\ выдаст ошибку на "число целое", если убрать кавычки и объединить ЧислоЦелое, то ошибка пропадает. В редакторе запросов sql select 1+1 "число целое" ошибки не вызывает. Пробовал 'число целое', все равно ошибка. Подскажите, пожалуйста, как в python в запросе sql сделать название поля с пробелом?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. polax 20.08.24 09:26 Сейчас в теме
А в чем сакральный смысл наименования колонки с пробелом? Делайте заголовок колонки с любым количеством пробелов, а вот имя должно быть слитно или разделено разрешенным знаком типа нижнее подчеркивание "_".
5. user1713496 20.08.24 13:40 Сейчас в теме
(3) работает в редакторе sql запросов, а в pycharm ошибка
File "C:\Users\dfUser\PycharmProjects\pythonProject1\sql_to_exel.py", line 15
"sum(tab.qty) ["Число целое"]," \
^^^^^^^^^^
SyntaxError: invalid syntax


(2)
А в чем сакральный смысл наименования колонки с пробелом?
смысл в том, что я сразу записываю данные из запроса в файл эксель
from datetime import datetime

import pandas as pd
import psycopg2
from psycopg2 import Error
from sqlalchemy import create_engine

try:
connection = create_engine('postgresql://user:1111@localhost/test_db')

current_datetime = datetime.now()
    file_name = str(current_datetime.strftime("%d.%m.%Y %H-%M") + '.xlsx')

textQuery = "sel ect " \
                        "sum(tab.qty) ["Число целое"]," \
                        "sum(tab.id) id," \
                        "fr om test_table tab;" \

 result = pd.read_sql(textQuery, connection)
    result.to_excel('D:/'+file_name, index=False)

except (Exception, Error) as error:
    print("Ошибка при работе с PostgreSQL", error)
finally:
        print("Файл записан")
Показать
8. user1326147 20.08.24 18:51 Сейчас в теме
(5) Попробуй это
 from sqlalchemy import create_engine, Table, MetaData, select, func
import pandas as pd
from datetime import datetime

# Создание движка SQLAlchemy
engine = create_engine('postgresql://user:1111@localhost/test_db')

# Создание объекта MetaData
metadata = MetaData()

# Инициализировать таблицу test_table
test_table = Table('test_table', metadata, autoload_with=engine)

# Создание SQLAlchemy Core запроса
query = select([
    func.sum(test_table.c.qty).label("Число целое"),
    func.sum(test_table.c.id).label("id")
])

# Выполнение запроса и чтение данных в DataFrame
with engine.connect() as connection:
    result = connection.execute(query)
    df = pd.DataFrame(result.fetchall(), columns=result.keys())

current_date = datetime.now().strftime("%d.%m.%Y")
filename = f"{current_date}.xlsx"

df.to_excel(filename, index=False)

print(f"Данные успешно сохранены в файл {filename}")
Показать
3. Said-We 20.08.24 09:37 Сейчас в теме
Работает всё:
https://onecompiler.com/sqlserver/42pq4h4dh

Можно так попробовать:
SELECT 1+1 as ["Число целое"]
Прикрепленные файлы:
4. user1326147 20.08.24 09:49 Сейчас в теме
import sqlite3

# Создаем соединение с временной базой данных в памяти
conn = sqlite3.connect(':memory:')
cursor = conn.cursor()

# Выполняем запрос
cursor.execute("SELECT 1+1 as 'Целое число'")

# Получаем результат
result = cursor.fetchone()
print(result[0])

# Закрываем соединение
conn.close()
Показать


Вывод: 2
6. user1713496 20.08.24 14:55 Сейчас в теме
(4) мне не sqlite3 нужно, со sqlite3 pandas не работает
7. user1326147 20.08.24 15:08 Сейчас в теме
(6) Очень хорошо работает.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот