我正在尝试以一种可重现的方式用一些测试数据填充数据库。
假设(一个过于简化的示例)三个基表:name、city、job 和两个关系表:name-city 和 name-job。我需要在三个基表中的每一个中创建一个条目,并使用上述条目在两个关系表中创建条目。
我已经拥有了一种使用一系列with查询在 3 个基表中创建条目并将值插入到一个关系表中的方法。
with x as
(INSERT INTO "public"."name" VALUES(DEFAULT) RETURNING "id"),
y as
(INSERT INTO "public"."job" VALUES(DEFAULT) RETURNING "id"),
z as
(INSERT INTO "public"."city" VALUES(DEFAULT) RETURNING "id")
INSERT INTO "public"."name-job"("name", "job")
select x.id, y.id from x,y;
Run Code Online (Sandbox Code Playgroud)
我真的想添加第二个插入语句
INSERT INTO "public"."name-city"("name", "city")
select x.id, z.id from x,z;
Run Code Online (Sandbox Code Playgroud)
第一次插入后,但不知道如何。我曾尝试用逗号分隔两个插入语句,并将它们括在括号中,然后用逗号分隔它们,以及其他一些方法,但没有任何效果。
使用带有第二个插入的全新语句并不完全是一种选择,因为我需要使用相同的 x、y、z 值。鉴于我缺乏专业知识/经验,我完全有可能遗漏了一些明显的东西......所以任何关于我如何做到这一点的想法,理想情况下,没有高度复杂的工具,将是最受欢迎的。
FWIW,我正在使用 Postgres (10.x)
WITH t1 AS (SELECT a.id,
AVG(standard_qty) std_avg,
AVG(poster_qty) pos_avg,
AVG(glossy_qty) gloss_avg
FROM accounts a
JOIN orders o
ON a.id = o.account_id
GROUP BY 1),
t2 AS (SELECT MAX(std_avg) max_std_avg,
MAX(pos_avg) max_pos_avg ,
MAX(gloss_avg) max_gloss_avg
FROM t1)
SELECT std_id , max_std_avg, pos_id , max_pos_avg, glos_id , max_gloss_avg
FROM(SELECT
(SELECT id std_id FROM t1,t2 WHERE std_avg = max_std_avg),
(SELECT id pos_id FROM t1,t2 WHERE pos_avg = max_pos_avg),
(SELECT id glos_id FROM t1,t2 WHERE gloss_avg =max_gloss_avg)
)foo ,t1,t2
Run Code Online (Sandbox Code Playgroud)
结果:
std_id | max_std_avg| pos_id …Run Code Online (Sandbox Code Playgroud) 我知道Brent 的帖子为什么没有人在这方面修补他们的 SQL Server ..... 和我的一位朋友一起,请假设一个这样的场景,其中近 100 个 SQL Server 从未打过补丁。假设任何用户都没有报告过错误或性能问题。那么,我的朋友是否有一种很酷的方法来识别所有服务器 - 他不知道 - 并且很少有服务器可能已经遇到了一些错误?换句话说,如何在 100 个 SQL Server 中主动发现错误?
一个计划是阅读那些错误的发行说明,其中错误可以使用服务器触发器在发生的基础上(可能是)......在本地表中捕获......在中央位置的SSIS。
但是,这个计划似乎值得吗?
特别关注那些可能会对数据产生影响的错误。(仅供参考,具有纯度的 DBCC CheckDB 运行无错误)。或者一些可能的业务损失。
最后假设,确实在某些 SQL Server 中检测到了一些错误 - 那么,当多年来用户没有报告任何问题时,如何以及为什么将它们视为“威胁”?
如何在 where 子句中短路,例如:
select 1 where 1=2 AND 1/0=0
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,1/0=0不应评估条件,因为第一个条件为假。
每条记录重 52 字节,如果有人拥有所需的存储空间,在今天的技术中是否可能?什么样的数据库可以保存数据并可以检索它。
一个示例记录:
(5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAbuatmU
,1MsHWS1BnwMc3tLE8G35UXsS58fKipzB7a
,1Q1pE5vPGEEMqRcVRMbtBK842Y6Pzo6nK9)
Run Code Online (Sandbox Code Playgroud)
记录数为 115792089237316195423570985008687907853269984665640564039457584007913129639936
对于我的系统,学生需要通过填写注册表(个人、联系方式和课程详细信息;还有用户名和密码)来创建一个用户帐户。
我需要通过一个表单收集注册数据,并将收集到的数据插入到我数据库中的两个相关表中(student表中的所有学生详细信息和users)。
我如何最好地在 php 中编码?


第 1 列是mem_id,第 2 列是Transaction typeC 和 D,第 3 列是Amount Owed。所以我想返回第 3 列“欠款”,但它必须是每个成员在第 2 列中的 CD。谢谢,我希望有帮助。
如果我在表中将 12345678、1234567、123456 作为列并使用 sql 创建一个新列,该列将包含删除每个数字的最后两位数字的新数字。新列将有 123456、12345、1234。
有人会帮忙在 Microsoft sql 环境中编写此代码吗
我在整个互联网上搜索堆栈溢出,但我找到的每个示例都只有一行,或者根本不起作用。
我有这张桌子:
TBL_RELATORIOS_TAMANHOS
table_catalog
table_name
column_name
data_type
character_maximum_length
numeric_precision
numeric_scale
Run Code Online (Sandbox Code Playgroud)
在它里面我有所有表中的所有列。我只需要找到那些具有不同精度、大小等的列。
使用 row_number 我得到了这个:
;WITH CTE AS
(
SELECT DISTINCT table_name 'Tabela',
column_name 'Coluna',
character_maximum_length as 'Tamanho',
numeric_precision as 'Precisao_Numerica',
numeric_scale 'Escala_Numerica'
FROM TBL_RELATORIO_TAMANHOS
)
SELECT *,
ROW_NUMBER() over ( partition by Tabela,Coluna order by Tabela,Coluna)
FROM CTE
ORDER BY 1,2
Run Code Online (Sandbox Code Playgroud)
有了这个,我可以看到上面有一个的列2,所以这个是重复的(相同的列,不同的大小,精度等)。
| table_Name | Column_name | character_maximum_length | numeric_precision | numeric_scale | Row_number |
|-------------------------|------------------|--------------------------|-------------------|---------------|------------|
| ACOES | ID_BMF | 20 | NULL | NULL | 1 …Run Code Online (Sandbox Code Playgroud) 我哪里错了?为什么在添加 MAX 函数时会收到该消息?
查询涉及:
WITH
references_cve AS (
SELECT vulnerability_id, reference
FROM dim_vulnerability_reference
WHERE dim_vulnerability_reference.source = 'NVD'
)
SELECT DISTINCT ON (
da.ip_address,
favi.port,
dv.severity,dp.name, dv.title,
dv.description,
fix,
dv.nexpose_id,
cve.reference,
da.host_name,
dos.description,
da.last_assessed_for_vulnerabilities,
davbs.solution_id
)
da.ip_address AS IPAddress,
CASE WHEN favi.port = -1 THEN NULL ELSE favi.port END AS Port,
dv.severity AS Severity,
dp.name AS Protocol,
dv.title AS VulnerabilityName,
htmlToText(dv.description) AS Summary,
htmlToText(dv.description) AS Description,
htmlToText(fix) as Solution,
'https://www.rapid7.com/db/vulnerabilities/' || dv.nexpose_id as SeeAlso,
dv.nexpose_id AS NexposeID,
''||null as PluginOutput,
cve.reference …Run Code Online (Sandbox Code Playgroud)