当我尝试执行以下查询时:
SELECT id_subscriber
INTO newsletter_to_send
FROM subscribers
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
#1327 - 未声明的变量:newsletter_to_send
该查询有什么问题?
如何在一个具有多个列的选择中执行并将每个列放在变量中?
像这样的东西:
--code here
V_DATE1 T1.DATE1%TYPE;
V_DATE2 T1.DATE2%TYPE;
V_DATE3 T1.DATE3%TYPE;
SELECT T1.DATE1 INTO V_DATE1, T1.DATE2 INTO V_DATE2, T1.DATE3 INTO V_DATE3
FROM T1
WHERE ID='X';
--code here
Run Code Online (Sandbox Code Playgroud) 说table1并且table2已经存在,这些查询之间是否有任何区别
query1: -
select * into table1 from table2 where 1=1
Run Code Online (Sandbox Code Playgroud)
query2: -
insert into table1 select * from table2
Run Code Online (Sandbox Code Playgroud) 我有一个tSQL查询,它从一个表中获取数据并将其复制到一个新表中,但只有满足特定条件的行:
SELECT VibeFGEvents.*
INTO VibeFGEventsAfterStudyStart
FROM VibeFGEvents
LEFT OUTER JOIN VibeFGEventsStudyStart
ON
CHARINDEX(REPLACE(REPLACE(REPLACE(logName, 'MyVibe ', ''), ' new laptop', ''), ' old laptop', ''), excelFilename) > 0
AND VibeFGEventsStudyStart.MIN_TitleInstID <= VibeFGEvents.TitleInstID
AND VibeFGEventsStudyStart.MIN_WinInstId <= VibeFGEvents.WndInstID
WHERE VibeFGEventsStudyStart.excelFilename IS NOT NULL
ORDER BY VibeFGEvents.id
Run Code Online (Sandbox Code Playgroud)
使用该表的代码依赖于它的顺序,上面的副本不保留我预期的顺序.也就是说,新表VibeFGEventsAfterStudyStart中的行在VibeFGEventsAfterStudyStart.id复制的列中不会单调增加VibeFGEvents.id.
在TSQL怎么可能我是从维护中行的排序VibeFGEvents中VibeFGEventsStudyStart?
我正在将CSV文件中的数据加载到临时临时表中,并且正在查询此临时表.我查看了我的执行计划,发现很多时间花在扫描临时表上.
我有没有办法在这张桌子上创建索引SELECT INTO?
SELECT *
FROM TradeTable.staging.Security s
WHERE (
s.Identifier IS NOT NULL
OR s.ConstituentTicker IS NOT NULL
OR s.CompositeTicker IS NOT NULL
OR s.CUSIP IS NOT NULL
OR s.ISIN IS NOT NULL
OR s.SEDOL IS NOT NULL
OR s.eSignalTicker IS NOT NULL)
Run Code Online (Sandbox Code Playgroud)

正如我发现的SELECT * FROM t INTO my_data;作品只有:
DO $$
DECLARE
my_data t%ROWTYPE;
BEGIN
SELECT * FROM t INTO my_data WHERE id = ?;
END $$;
Run Code Online (Sandbox Code Playgroud)
我对吗?
如果我想只获得2-3列而不是所有列.我该如何定义my_data?
那是,
DO $$
DECLARE
my_data <WHAT HERE??>;
BEGIN
SELECT id,name,surname FROM t INTO my_data WHERE id = ?;
END $$;
Run Code Online (Sandbox Code Playgroud) 我目前正在尝试使用SELECT INTO查询将数据从表复制到另一个.但我在SQL Server中收到错误.
"Msg 2714,Level 16,State 6,Line 2在数据库中已经有一个名为'Product'的对象."
我仍然是sql的新手.这是我为完成这项工作而创建的SQL脚本.
BEGIN TRANSACTION
SELECT d.[PDate]
,d.[SDate]
,d.[UseDRM]
,d.[CreatedBy]
,d.[CreatedDate]
,d.[UpdatedBy]
,d.[UpdatedDate]
INTO [******].[dbo].[Product]
FROM [******].[dbo].[ProductTypeData] AS d
JOIN [******].[dbo].[Product] AS t
ON d.ProductTypeDataID = t.ProductTypeDataID
ROLLBACK TRANSACTION
Run Code Online (Sandbox Code Playgroud)
我已经在目标表中创建了这些列,但它们当前是空的.任何帮助是极大的赞赏.
我在我的数据库中有这个功能:
CREATE OR REPLACE FUNCTION "insertarNuevoArticulo"(nombrearticulo character varying, descripcion text, idtipo integer, idfamilia bigint, artstock integer, minstock integer, maxstock integer, idmarca bigint, precio real, marcastock integer)
RETURNS boolean AS
$BODY$
DECLARE
articulo "Articulo"%ROWTYPE;
BEGIN
SELECT * INTO articulo FROM "Articulo" WHERE "Nombre" = $1 AND "idTipo"=$3 AND "idFamilia"=$4;
IF NOT FOUND THEN
INSERT INTO "Articulo" ("Nombre", "Descripcion", "idTipo", "idFamilia", "Stock", "MinStock", "MaxStock") Values ($1, $2, $3, $4, $5, $6, $7);
SELECT last_value
INTO articulo."idArticulo"
FROM "public"."Articulo_idArticulo_seq";
END IF;
SELECT * …Run Code Online (Sandbox Code Playgroud) 我正在尝试从游戏数据库中删除与用户ID相关的所有数据.
有一张桌子可容纳所有游戏(每个游戏由3名玩家扮演):
# select * from pref_games where gid=321;
gid | rounds | finished
-----+--------+----------------------------
321 | 17 | 2011-10-26 17:16:04.074402
(1 row)
Run Code Online (Sandbox Code Playgroud)
并且有一张桌子可以控制该游戏的玩家分数#321:
# select * from pref_scores where gid=321;
id | gid | money | quit
----------------+-----+-------+------
OK531282114947 | 321 | 218 | f
OK501857527071 | 321 | -156 | f
OK429671947957 | 321 | -62 | f
Run Code Online (Sandbox Code Playgroud)
当我在PostgreSQL的psql-prompt上尝试以下SELECT INTO语句时,它似乎按预期工作(临时表在会话关闭时消失):
# select gid into temp temp_gids from pref_scores where id='OK446163742289';
SELECT
# select * from temp_gids ;
gid …Run Code Online (Sandbox Code Playgroud) 我写了一个简单的程序.我尝试将选择结果存储在变量中.我使用"SELECT INTO"查询,但我不能这样做.
例:
DECLARE
v_employeeRecord employee%ROWTYPE;
BEGIN
SELECT * INTO v_employeeRecord
FROM Employee WHERE Salary > 10;
END;
Run Code Online (Sandbox Code Playgroud) select-into ×10
plpgsql ×3
postgresql ×3
sql ×3
sql-server ×3
oracle ×2
t-sql ×2
declare ×1
function ×1
indexing ×1
join ×1
mysql ×1
plsql ×1
sql-order-by ×1
types ×1