Перейти к содержимому

Как сохранить результат запроса sql

  • автор:

Сохранение результатов запросов в хранилище с помощью бессерверного пула SQL в Azure Synapse Analytics

Из этой статьи вы узнаете, как сохранять результаты запросов в хранилище, используя бессерверный пул SQL.

Предварительные требования

Для начала создайте базу данных, в которой будут выполняться запросы. Затем инициализируйте объекты, выполнив скрипт настройки для этой базы данных. Этот скрипт создает источники данных, учетные данные области базы данных и форматы внешних файлов, которые используются для чтения данных в этих примерах.

Придерживаясь инструкций в этой статье, создайте источники данных, учетные данные области базы данных и форматы внешних файлов, которые будут использоваться для записи данных в выходное хранилище.

CREATE EXTERNAL TABLE AS SELECT

Чтобы сохранить результаты запроса в хранилище, можно использовать инструкцию CREATE EXTERNAL TABLE AS SELECT (CETAS).

Измените первую строку в запросе ([mydbname]), чтобы использовать созданную вами базу данных.

USE [mydbname]; GO CREATE DATABASE SCOPED CREDENTIAL [SasTokenWrite] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-04-18T20:42:12Z&st=2019-04-18T12:42:12Z&spr=https&sig=lQHczNvrk1KoYLCpFdSsMANd0ef9BrIPBNJ3VYEIq78%3D'; GO CREATE EXTERNAL DATA SOURCE [MyDataSource] WITH ( LOCATION = 'https://.blob.core.windows.net/csv', CREDENTIAL = [SasTokenWrite] ); GO CREATE EXTERNAL FILE FORMAT [ParquetFF] WITH ( FORMAT_TYPE = PARQUET, DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec' ); GO CREATE EXTERNAL TABLE [dbo].[PopulationCETAS] WITH ( LOCATION = 'populationParquet/', DATA_SOURCE = [MyDataSource], FILE_FORMAT = [ParquetFF] ) AS SELECT * FROM OPENROWSET( BULK 'csv/population-unix/population.csv', DATA_SOURCE = 'sqlondemanddemo', FORMAT = 'CSV', PARSER_VERSION = '2.0' ) WITH ( CountryCode varchar(4), CountryName varchar(64), Year int, PopulationCount int ) AS r; 

Вам необходимо изменить этот скрипт и задать новое целевое расположение для его выполнения. Внешние таблицы не могут быть созданы в расположении, где уже присутствуют данные.

Использование внешней таблицы

Вы можете использовать внешнюю таблицу, созданную с помощью CETAS, как обычную внешнюю таблицу.

Измените первую строку в запросе ([mydbname]), чтобы использовать созданную вами базу данных.

USE [mydbname]; GO SELECT CountryName, PopulationCount FROM PopulationCETAS WHERE [Year] = 2019 ORDER BY [PopulationCount] DESC; 

Примечания

После сохранения результатов данные во внешней таблице нельзя будет изменить. Этот скрипт нельзя повторять, так как CETAS не перезаписывает базовые данные, созданные при предыдущем выполнении. Проголосуйте за следующие элементы системы отзывов, если некоторые из них требуются в ваших сценариях, или предложите новые на сайте отзывов Azure:

  • Включение вставки новых данных во внешнюю таблицу
  • Включение удаления данных из внешней таблицы
  • Указание разделов в CETAS
  • Указание размеров и количества файлов

Поддерживаются только типы выходных данных Parquet и CSV. Вы можете проголосовать за другие типы на сайте отзывов Azure.

Дальнейшие действия

Дополнительные сведения о том, как запрашивать различные типы файлов, см. в статьях Запрашивание одного CSV-файла, Запрашивание файлов Parquet и Запрашивание файлов JSON.

Как из sql выгрузить в excel

Есть несколько способов выгрузки данных из SQL в Excel. Рассмотрим несколько из них:

  1. Используйте функцию экспорта в Excel в среде управления базами данных. Некоторые программы, такие как Microsoft SQL Server Management Studio, MySQL Workbench или phpMyAdmin, позволяют экспортировать результаты SQL-запросов в формате Excel. Для этого необходимо выполнить SQL-запрос, затем выбрать опцию экспорта в Excel в меню программы.
  2. Используйте SQL-запрос, который выводит результаты в формате CSV, а затем откройте CSV-файл в Excel. Для этого выполните SQL-запрос с использованием ключевого слова INTO OUTFILE , чтобы сохранить результаты запроса в CSV-файл. Например:
SELECT * FROM таблица INTO OUTFILE 'путь_к_файлу.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; 

После выполнения этого запроса CSV-файл будет сохранен в указанном каталоге. Откройте Excel и выберите опцию «Открыть файл», затем выберите CSV-файл и откройте его в Excel.

Как сохранить результат запроса в файл csv?

Если это разовое мероприятие, то установи Navicat — там есть экспорт результатов в CSV. Программа платная, но триала на 2 недели должно хватить.

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

Не совсем понятно какая СУБД. Для mysql можно попробовать вот так:

SELECT aicraft.id,auto.uri, auto.expires_at, auto.created_at, auto.updated_at FROM aicraft LEFT OUTER JOIN aicraft ON aicraft_id = auto.id INTO OUTFILE '/tmp/result.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

Ваш ответ на вопрос

Войдите, чтобы написать ответ

postgresql

  • PostgreSQL

Где и как хранить сообщения чата?

  • 1 подписчик
  • 05 янв.
  • 118 просмотров

postgresql

  • PostgreSQL

Как сделать, чтобы при добавлении автоинкрементированного поля значение корректировалось?

  • 1 подписчик
  • 05 янв.
  • 85 просмотров

Можно ли присвоить переменной результат запроса?SQL,TRANSACT-SQL

При этом одним запросом можно присвоить значения нескольким переменным:

select @i1 = i1, @i2 = i2, . from . 

Отслеживать
ответ дан 30 авг 2013 в 9:44
11.5k 16 16 серебряных знаков 16 16 бронзовых знаков

Запрос нужно обернуть в скобки. То есть

DECLARE @enddate INT; SET @enddate = (SELECT dbo.Date_Dim.ID FROM dbo.Date_Dim WHERE dbo.Date_Dim.DateOper = '2013-06-27'); 

ну и позаботиться о том, чтобы он возвращал только одно значение, если это не так

Отслеживать
ответ дан 30 авг 2013 в 7:11
DreamChild DreamChild
36.2k 3 3 золотых знака 45 45 серебряных знаков 85 85 бронзовых знаков
да,спасибо,топ 1 уже поставил
30 авг 2013 в 7:12

в mysql можно не объявлять переменную, а сразу воспользоваться ей

 set @m = (SELECT MIN(id) FROM db.table WHERE status=0); UPDATE db.table SET status=1 WHERE select * from db.table ; 

Отслеживать
ответ дан 23 мая 2017 в 14:36
101 1 1 бронзовый знак

  • sql-server
  • sql
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *