我想从一个名为Sorels的表更新一个名为Sorels_ext
的表。它们之间的链接是Sorels_ext
的fkey_id
等于Sorels表的identity_column
。这是我对Merge语句的第一次尝试,并且我正在尝试学习语法。
MERGE Sorels_ext AS SORe
USING (select SOR.identity_column, CASE
WHEN left(SOR.FPARTNO, 2) = 'BL' THEN 'Blue'
WHEN left(SOR.FPARTNO, 2) = 'RD' THEN 'Red'
ELSE 'White'
END from Sorels AS SOR)
ON (SORe.fkey_id = SOR.identity_column)
WHEN MATCHED THEN
UPDATE SET SORe.fkey_id = SOR.identity_column, SORe.Color = select SOR.identity_column, CASE
WHEN left(SOR.FPARTNO, 2) = 'BL' THEN 'Blue'
WHEN left(SOR.FPARTNO, 2) = 'RD' THEN 'Red'
ELSE 'White'
END
WHEN NOT MATCHED THEN
INSERT (SORe.fkey_id, SORe.Color) VALUES (SOR.identity_column, SORe.Color = select SOR.identity_column, CASE
WHEN left(SOR.FPARTNO, 2) = 'BL' THEN 'Blue'
WHEN left(SOR.FPARTNO, 2) = 'RD' THEN 'Red'
ELSE 'White'
END);
运行此命令时,出现以下错误:
错误10/22/2009 1:38:51 PM 0:00:00.000 SQL Server数据库错误:关键字’ON’附近的语法不正确。46 0
添加的信息*
MERGE Sorels_ext AS SORe
USING (select SOR.identity_column, CASE
WHEN left(SOR.FPARTNO, 2) = 'BL' THEN 'Blue'
WHEN left(SOR.FPARTNO, 2) = 'RD' THEN 'Red'
ELSE 'White'
END from Sorels) AS SOR
ON (SORe.fkey_id = SOR.identity_column)
WHEN MATCHED THEN
UPDATE SET SORe.fkey_id = SOR.identity_column, SORe.Color = CASE
WHEN left(SOR.FPARTNO, 2) = 'BL' THEN 'Blue'
WHEN left(SOR.FPARTNO, 2) = 'RD' THEN 'Red'
ELSE 'White'
END
WHEN NOT MATCHED THEN
INSERT (SORe.fkey_id, SORe.Color) VALUES (SOR.identity_column, CASE
WHEN left(SOR.FPARTNO, 2) = 'BL' THEN 'Blue'
WHEN left(SOR.FPARTNO, 2) = 'RD' THEN 'Red'
ELSE 'White'
END);
现在我得到以下错误:
错误10/22/2009 2:03:29 PM 0:00:00.000 SQL
Server数据库错误:MERGE语句中使用的插入列列表不能包含多部分标识符。请改用单个零件标识符。55 0
*添加了更多信息**从建议中进行调整后,我得到以下信息:
MERGE Sorels_ext AS SORe
USING (select SOR1.identity_column, CASE
WHEN left(SOR1.FPARTNO, 2) = 'BL' THEN 'Blue'
WHEN left(SOR1.FPARTNO, 2) = 'RD' THEN 'Red'
ELSE 'White'
END as colors from Sorels as SOR1 ) as SOR
ON (SORe.fkey_id = SOR.identity_column)
WHEN MATCHED THEN
UPDATE SET SORe.fkey_id = SOR.identity_column, SORe.Color = CASE
WHEN left(SOR.FPARTNO, 2) = 'BL' THEN 'Blue'
WHEN left(SOR.FPARTNO, 2) = 'RD' THEN 'Red'
ELSE 'White'
END
WHEN NOT MATCHED THEN
INSERT (fkey_id, Color) VALUES (SOR.identity_column, CASE
WHEN left(SOR.FPARTNO, 2) = 'BL' THEN 'Blue'
WHEN left(SOR.FPARTNO, 2) = 'RD' THEN 'Red'
ELSE 'White'
END);
我得到了错误:
错误10/22/2009 2:46:51 PM 0:00:00.000 SQL Server数据库错误:无效的列名’FPARTNO’。56 0
我究竟做错了什么?
* 我得到了它!!!**
MERGE Sorels_ext AS SORe
USING (select SOR.identity_column, CASE
WHEN left(SOR.FPARTNO, 2) = 'BL' THEN 'Blue'
WHEN left(SOR.FPARTNO, 2) = 'RD' THEN 'Red'
ELSE 'White'
END as colors from Sorels as SOR) SOR1
ON (SORe.fkey_id = SOR1.identity_column)
WHEN MATCHED THEN
UPDATE SET SORe.fkey_id = SOR1.identity_column, SORe.Color = SOR1.colors
WHEN NOT MATCHED THEN
INSERT (fkey_id, Color) VALUES (SOR1.identity_column, SOR1.colors);
我相信您必须像这样对源数据进行别名:
USING (select SOR.identity_column,
CASE WHEN left(SOR.FPARTNO, 2) = 'BL'
THEN 'Blue'
WHEN left(SOR.FPARTNO, 2) = 'RD'
THEN 'Red'
ELSE 'White'
END from Sorels AS SOR) **AS SOR** ON (SORe.fkey_id = SOR.identity_column)
我有这张桌子: 这是我的SQL查询: 我想要的查询是: > 我希望获得符合某些条件的记录,特别是字段在最近24小时内的记录 我需要获得紧接在#1中的记录之前的记录 将#1中的结果进一步过滤到其价格列在记录的历史记录中具有不同值(而不是-1)的记录 我面临的问题是查询太慢了。我有一百万张唱片。执行查询大约需要2分钟。我猜GROUP BY会使查询变慢。我想我需要做一个综合指数,但我不知道怎么做。 解释
问题内容: 您如何在一个日期稀疏的表与另一个日期详尽的表之间进行联接,以使稀疏日期之间的间隔取前一个稀疏日期的值? 说明性示例: 所需结果: 更新: 几个人提出了可以完成所需结果的相关子查询。(相关子查询=包含对外部查询的引用的子查询。) 这将起作用;但是,我应该注意到,我使用的平台是MySQL,其相关子查询的优化效果很差。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
我已经被这个问题弄得头昏脑胀了太久,所以我真的真的需要一些专家的帮助,他们有解决这个问题的方法。 我已经安装了Sonatype Nexus ver 2.0.3,并将其作为JavaEE、Glassfish类应用程序的开发存储库,还配置了maven settings.xml以读取Nexus Repo中的内容。所有其他jar都得到了正确的下载和缓存,但每次当涉及到org.eclipse.persiste
{photos:[],product:[],report_date:null,report_sum:null,check_number:“”,qr_img:null,qr_link:“”} 旧表单-数据表单: ------WebKitFormBoundaryEFKGXHEAEJV3FGL7内容-配置:表单-数据;name=“report_date”2018-08-17t12:00:00.000z-
我是堆栈溢出和python的新手,是否可以在类类型函数中返回实用程序函数,然后按类输入对其进行排序?如果您有任何建议或帮助,请告诉我。谢谢 output:File "/tmp/ipykernel _ 28447/2787243890 . py ",第37行显示(utility['Class'] == 'Resi)语法错误:扫描字符串文字时出现EOL
我想对我的文件内容进行排序。我的文件内容是学生姓名,他们的学生编号,他们的班级,他们的成绩。这些数据由“;”分隔。首先,我需要计算平均值和字母等级。我已经计算过了,但是我需要将所有内容写入另一个文件,顺序必须是最高等级到最低等级。我该怎么办?