How to create a return statement in Redshift
I have following sql on SQL server
declare @groupName varchar(50)
select @groupName=groupIdentifier from tab1 where col3 ='ABC'
if @groupName is not NULL
select @groupName
return
select @groupName=col2 from tab2 where col1= 'BCD'
if @groupName is not NULL
select @groupName
return
I translated into RedShift as follows:
create temp table t1
(groupName)
---- Statement 1 -----
insert into t1 select groupIdentifier from tab1 where col3 ='ABC'
---- Statement 2 -----
insert into t1 select col2 from tab2 where col1= 'BCD' and (select count(1) from t1)=0
select * from t1
As there is no return statement in RedShift , Statement 2 always gets executed even when Statement 1 was able to fetch row. As second statement is expensive, how do I efficiently prevent it from being executed if Statement 1 is successful.
amazon-redshift
add a comment |
I have following sql on SQL server
declare @groupName varchar(50)
select @groupName=groupIdentifier from tab1 where col3 ='ABC'
if @groupName is not NULL
select @groupName
return
select @groupName=col2 from tab2 where col1= 'BCD'
if @groupName is not NULL
select @groupName
return
I translated into RedShift as follows:
create temp table t1
(groupName)
---- Statement 1 -----
insert into t1 select groupIdentifier from tab1 where col3 ='ABC'
---- Statement 2 -----
insert into t1 select col2 from tab2 where col1= 'BCD' and (select count(1) from t1)=0
select * from t1
As there is no return statement in RedShift , Statement 2 always gets executed even when Statement 1 was able to fetch row. As second statement is expensive, how do I efficiently prevent it from being executed if Statement 1 is successful.
amazon-redshift
pleasr remove postgresql tag - its not the same as redshift
– Jon Scott
Nov 14 '18 at 8:25
you need to control this using a scripting language outside of redshift.
– Jon Scott
Nov 14 '18 at 8:26
add a comment |
I have following sql on SQL server
declare @groupName varchar(50)
select @groupName=groupIdentifier from tab1 where col3 ='ABC'
if @groupName is not NULL
select @groupName
return
select @groupName=col2 from tab2 where col1= 'BCD'
if @groupName is not NULL
select @groupName
return
I translated into RedShift as follows:
create temp table t1
(groupName)
---- Statement 1 -----
insert into t1 select groupIdentifier from tab1 where col3 ='ABC'
---- Statement 2 -----
insert into t1 select col2 from tab2 where col1= 'BCD' and (select count(1) from t1)=0
select * from t1
As there is no return statement in RedShift , Statement 2 always gets executed even when Statement 1 was able to fetch row. As second statement is expensive, how do I efficiently prevent it from being executed if Statement 1 is successful.
amazon-redshift
I have following sql on SQL server
declare @groupName varchar(50)
select @groupName=groupIdentifier from tab1 where col3 ='ABC'
if @groupName is not NULL
select @groupName
return
select @groupName=col2 from tab2 where col1= 'BCD'
if @groupName is not NULL
select @groupName
return
I translated into RedShift as follows:
create temp table t1
(groupName)
---- Statement 1 -----
insert into t1 select groupIdentifier from tab1 where col3 ='ABC'
---- Statement 2 -----
insert into t1 select col2 from tab2 where col1= 'BCD' and (select count(1) from t1)=0
select * from t1
As there is no return statement in RedShift , Statement 2 always gets executed even when Statement 1 was able to fetch row. As second statement is expensive, how do I efficiently prevent it from being executed if Statement 1 is successful.
amazon-redshift
amazon-redshift
edited Nov 14 '18 at 8:40
a_horse_with_no_name
296k46451546
296k46451546
asked Nov 13 '18 at 23:39
user3376169user3376169
85118
85118
pleasr remove postgresql tag - its not the same as redshift
– Jon Scott
Nov 14 '18 at 8:25
you need to control this using a scripting language outside of redshift.
– Jon Scott
Nov 14 '18 at 8:26
add a comment |
pleasr remove postgresql tag - its not the same as redshift
– Jon Scott
Nov 14 '18 at 8:25
you need to control this using a scripting language outside of redshift.
– Jon Scott
Nov 14 '18 at 8:26
pleasr remove postgresql tag - its not the same as redshift
– Jon Scott
Nov 14 '18 at 8:25
pleasr remove postgresql tag - its not the same as redshift
– Jon Scott
Nov 14 '18 at 8:25
you need to control this using a scripting language outside of redshift.
– Jon Scott
Nov 14 '18 at 8:26
you need to control this using a scripting language outside of redshift.
– Jon Scott
Nov 14 '18 at 8:26
add a comment |
1 Answer
1
active
oldest
votes
You cannot recreate this logic using only SQL statements on Redshift. Redshift SQL syntax does not contain control-of-flow commands like IF
and RETURN
.
Typically, you will need some kind of external program or script to manage the control-of-flow logic to work out which SQL statements to execute and what result to return.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53291083%2fhow-to-create-a-return-statement-in-redshift%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You cannot recreate this logic using only SQL statements on Redshift. Redshift SQL syntax does not contain control-of-flow commands like IF
and RETURN
.
Typically, you will need some kind of external program or script to manage the control-of-flow logic to work out which SQL statements to execute and what result to return.
add a comment |
You cannot recreate this logic using only SQL statements on Redshift. Redshift SQL syntax does not contain control-of-flow commands like IF
and RETURN
.
Typically, you will need some kind of external program or script to manage the control-of-flow logic to work out which SQL statements to execute and what result to return.
add a comment |
You cannot recreate this logic using only SQL statements on Redshift. Redshift SQL syntax does not contain control-of-flow commands like IF
and RETURN
.
Typically, you will need some kind of external program or script to manage the control-of-flow logic to work out which SQL statements to execute and what result to return.
You cannot recreate this logic using only SQL statements on Redshift. Redshift SQL syntax does not contain control-of-flow commands like IF
and RETURN
.
Typically, you will need some kind of external program or script to manage the control-of-flow logic to work out which SQL statements to execute and what result to return.
answered Nov 14 '18 at 8:39
Nathan GriffithsNathan Griffiths
8,65722239
8,65722239
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53291083%2fhow-to-create-a-return-statement-in-redshift%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
pleasr remove postgresql tag - its not the same as redshift
– Jon Scott
Nov 14 '18 at 8:25
you need to control this using a scripting language outside of redshift.
– Jon Scott
Nov 14 '18 at 8:26