gpt4 book ai didi

sql - 对于每个样式的 SQL 查询

转载 作者:行者123 更新时间:2023-12-02 07:03:49 25 4
gpt4 key购买 nike

基本上我想用伪代码做的是:

FOR EACH pig_id IN (SELECT pig_id FROM farm AS f)
BEGIN
-- Do something funky with the f.pig_id, for example
SELECT bacon, ham, pork, (face + guts + brains + testicles) AS 'sausage'
FROM farm
WHERE pig_id = f.pig_id
END

循环的实际内部更复杂,但这个简单的 SELECT 语句演示了在循环中使用 f.pig_id FOR EACH pig_id in the farm TABLE。我看过 CREATE TRIGGER 解决方案,但我希望能找到更简单的东西。我知道这是一个低效的查询,但该项目需要对非技术人员进行简单且易于人类阅读的查询。

编辑:它被用于小型数据集,因此人类可读性比效率更重要。

最佳答案

如果 pig_id 是唯一列(例如数据类型为 int),您可以使用不带 CURSOR 的循环

DECLARE @id int = (SELECT MIN(pig_id) FROM farm) 
WHILE (@id IS NOT NULL)
BEGIN
SELECT bacon, ham, pork, (face + guts + brains + testicles) AS 'sausage'
FROM farm
WHERE pig_id = @id

SELECT @id = MIN(pig_id) FROM farm WHERE pig_id > @Id
END

DECLARE @id int = 0
WHILE 1 = 1
BEGIN
SELECT @id = (select min(pig_id) from farm where pig_id > @id)

IF @id IS NULL
BREAK
ELSE

SELECT bacon, ham, pork, (face + guts + brains + testicles) AS 'sausage'
FROM farm
WHERE pig_id = @id
CONTINUE
END

关于sql - 对于每个样式的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15814621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com