sql - 如何抑制变量行计算所需的 Mariadb 变量,而不是插入
问题描述
我有一个使用 Select 填充表的 SQL 插入语句。
一切都很好,直到我不得不将站点名称与邮政编码连接以进行处理。
SQL 需要为每个站点名称/邮政编码组合返回一个row_id
,但我不想将此组合插入表中,也不想在插入表中创建一个新列 - 只有站点名称。
我看不出如何实现这一点 - 代码片段如下。
SET @row_number = 0;
INSERT INTO mis.temp_site_extraction_line_costing
(row_id, `Site Company Name`,.........)
select
@row_number :=
CASE
WHEN @site_name=concat(m1.`Site Company Name`,m1.sitepostcode) then @row_number+1
ELSE 1
END as rowid,
@site_name :=concat(m1.`Site Company Name`, m1.`sitepostcode`),
m1.`Site Company Name` as site_company_name,
...
谢谢
解决方案
将您的移动SELECT
到子查询中。也就是说,而不是
SELECT @row_number := ..., other_stuff
做
SELECT other_stuff
FROM (
SELECT @row_number := ..., other_stuff
) AS x
推荐阅读
- amazon-web-services - 列出来自 route53 中托管区域的资源记录集,给出一个非常奇怪的错误
- spring-boot - 无法模拟 crudrepository 保存方法
- eigen - 是否可以使用 Eigen 作为 CGAL 的类型?
- assembly - 为什么gas无法识别arm64上的vqmovn?
- firebase - Firebase Cloud Function HTTP 请求授权
- cognos - 如何创建脚本以使用 html 从 cognos 报告工作室中的查询中绘制多个 lat/lng
- flutter - Flutter - 可以在 MyApp 中放置状态吗?
- javascript - 根据 javascript 函数的结果设置帖子的输入值
- spring - @Value 未设置在一个特定的类中
- matlab - 如何在 Matlab 中将 uifigure 设为当前的