Я всегда рекомендую определить столбцы, в которых Вы нуждаетесь, на всякий случай Ваши изменения схемы, и Вам не нужен дополнительный столбец.
, Кроме того, квалифицируйте имена столбцов с именем таблицы. Это очень важно, когда запрос содержит соединения. Без квалификаций таблицы может быть трудно помнить, какой столбец появляется, от которого таблица и добавление столь же именованного столбца к одной из других таблиц могут повредить Ваш запрос.
Один из способов сделать это - явно создать таблицу перед тем, как что-либо в нее помещать.
Ваш текущий оператор, вероятно, выглядит следующим образом:
SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
WHERE FirstName = 'Alistair'
Но вы также можете сделать это:
----Create NewTable
CREATE TABLE NewTable(FirstName VARCHAR(100), LastName VARCHAR(100), Total DOUBLE)
----INSERT INTO NewTableusing SELECT
INSERT INTO NewTable(FirstName, LastName, Total)
SELECT FirstName, LastName,
FROM Person p
INNER JOIN Orders o
ON p.P_Id = o.P_Id
WHERE p.FirstName = 'Alistair'
Таким образом, вы полностью контролируете типы столбцов. Вы всегда можете отбросить таблицу позже, если вам нужно будет создать ее заново.
Вы можете использовать приведение к функции FLOAT
CDBL ()
, но, как ни странно, ядро СУБД Access не может обработать NULL
, поэтому вы должны справиться с этим самостоятельно, например,
SELECT first_column,
IIF(second_column IS NULL, NULL, CDBL(second_column))
AS second_column_as_float
INTO Table666
FROM MyTest;
... но вам понадобится ALTER TABLE
, чтобы добавить свои ключи, ограничения и т. Д. Лучше просто CREATE TABLE Сначала
затем используйте INSERT INTO..SELECT
, чтобы заполнить его.