Re: ternary statements
fair kop. so if i change custRefNum from an int to a string?
fair kop. so if i change custRefNum from an int to a string?Feel free to do so but you want to check whether or not that string contains
a 'D'. Do you suspect a 'D' present in a decimal string representation
of an int?
kind regards,
Jos
Similar Messages
-
What is the 3 dot operator?
Example:
public GlobalKey(String category, String... keys) {
this.category = (category == null ? "" : (category.equals("-") ? "" : category.toLowerCase()));
if (keys.length >= 1) {
this.key1 = (keys[0] == null ? "" : (keys[0].equals("-") ? "" : keys[0].toLowerCase()));
if (keys.length >= 2) {
this.key2 = (keys[1] == null ? "" : (keys[1].equals("-") ? "" : keys[1].toLowerCase()));
if (keys.length >= 3)
It looks similar to an Array, if so what is the difference?yawmark wrote:
The ternary operator is......not what the OP is talking about. ;o)
~I thought the same thing at first. I had no idea what a vararg was, so I wasn't looking for one. And I didn't notice the dots after String. What I did notice was the colon being used in the ternary statements. Which made me think the subject line was a typo, and he meant "2 dot operator" in regards to the colon. -
Enum class not supported for switch() statement in 12.4 beta?
Hi fellow 12.4 beta testers,
It would appear "enum class" isn't supported for switch() statements in the 12.4 beta. This compiles fine under clang and g++. Will this be fixed for the final release? This currently causes compile errors for us, since __cplusplus >= 201103L evaluates to true, so our code uses "enum class" instead of plain "enum". It looks like the C++11 standard says it should be supported:
Switching on enum class in C++ 0x - Stack Overflow
Many thanks,
Jonathan.
$ cat test.cpp
#include <iostream>
enum class Ternary { KnownFalse = 0, KnownTrue = 1, Unknown = 2 };
int main( void )
Ternary foo;
switch ( foo ) {
case Ternary::KnownTrue:
case Ternary::KnownFalse:
case Ternary::Unknown:
std::cout << "Success\n";
$ clang++ -std=c++11 test.cpp
$ g++ -std=c++11 test.cpp
$ /opt/SolarisStudio12.4-beta_mar14-solaris-x86/bin/CC -std=c++11 test.cpp
"test.cpp", line 8: Error: Cannot use Ternary to initialize integral type.
"test.cpp", line 8: Error: Switch selection expression must be of an integral type.
"test.cpp", line 9: Error: An integer constant expression is required for a case label.
"test.cpp", line 10: Error: An integer constant expression is required for a case label.
"test.cpp", line 11: Error: An integer constant expression is required for a case label.
5 Error(s) detected.Thanks for reporting this problem! I have filed bug 18499900.
BTW, according to the C++11 standard, the code is actually not valid. Section 6.4.2, switch statement, says an implicit conversion to an integral type is required, which is not the case for for a scoped enum (one using the "class enum" syntax). This limitation was raised in the C++ Committee as an issue to be fixed, and the C++14 standard makes the code valid.
As a workaround, or to make the code conform to C++11, you can add casts to int for the enum variable and the enumerators.
Message was edited by: Steve_Clamage -
Ternary Operator Question (with regex).
Hi, I was learning regex in java and wrote a program which tests a string to see if it is an email address.
import javax.swing.*;
public class IsEmailAddress
public static void main(String[] args)
String address = JOptionPane.showInputDialog("Enter an email address");
if(address.matches("[a-zA-Z0-9\\.]+@\\w+\\.{1}\\w+"))
JOptionPane.showMessageDialog(null, "It is an email address");
else
JOptionPane.showMessageDialog(null, "It is not an email address");
}The above program works correctly. But then I decided to try and make the program only one line inside the main:
import javax.swing.*;
public class IsEmailAddress
public static void main(String[] args)
JOptionPane.showInputDialog("Enter an email address").matches("[a-zA-Z0-9\\.]+@\\w+\\.{1}\\w+") ? JOptionPane.showMessageDialog(null, "It is an email address") : JOptionPane.showMessageDialog(null, "It is not an email address");
}I get the compilation error not a statement, what am I doing wrong? Is this even possible?
Thanks for any helpI would never use a piece of code like that as part of a bigger program, I wanted to see if it was possible and maybe to learn something about the ternary operator.
Keeping in mind what you said about the ternary operator having to return something, I was able to make it work:
import javax.swing.*;
public class IsEmailAddress
public static void main(String[] args)
int a = JOptionPane.showInputDialog("Enter an email address").matches("[a-zA-Z0-9\\.]+@\\w+\\.{1}\\w+") ? JOptionPane.showOptionDialog(null, "It is an email address","Is it an email Adress?",JOptionPane.CANCEL_OPTION,JOptionPane.PLAIN_MESSAGE,null,null,null) : JOptionPane.showOptionDialog(null, "It is not an email address","Is it an email Adress?",JOptionPane.CANCEL_OPTION,JOptionPane.PLAIN_MESSAGE,null,null,null);
}I chose showOptionDialog because it returns a static int.
Thank you for your help!!! -
Control Statement inside System.out.println
I am printing something like this:
System.out.println(parts1[0] + "|" + parts1[1]); Now, I want to keep a check i.e. if parts1[1] is say 3 I want to printout Hi and if parts1[1] is any other digit I printout Hello. [parts is obtained by using split method from data]
Can I do it inside the print statement?Be judicious about this though. Unless the ternary expression and the overall argument to println are both very simple, you'll end up with an unreadable, unmaintainable mess. The only advantage to doing it all inside the println argument is compactness. If it gets unwieldy, break it up into separate statements, assign the end result to a variable, and print that.
-
What would I use instead of ternary operators?
i came across some code I wanted to manipulate to help with a file input class we have to create for class, and the code contains : and ? and our teacher frowns upon us using those operators for what ever reason, so dose : not mean like a for loop? and does ? not mean a if statement?
so dose : not mean like a for loop?The colon is used as an operator to distinguish the traditional for loop from the "enhanced for" for looping over iterables that was introduced in Java 5:
// Traditional
for(int i = 0; i < 10; i++) { ... }
// Enhanced for
for( Object obj : collection ) { ... }It can also be used in label names and in the ternary operator.
and does ? not mean a if statement? The ternary operator is the question mark with the colon (it has three operands, hence the name):
// Ternary operator used to avoid assigning a null string to a result:
String result = (input == null ) ? "NULL" : input.toString();
// Equivalent conditional construction:
String result
if( input == null ) {
result = "NULL";
} else {
result = input.toString();
}The major reason not to use it is that some novice programmers are not familiar with its syntax. That's a bit of a self-fulfilling prophecy when teachers frown upon its usage for that reason! Exactly what reason your own teacher has for deprecating it is something you should take up with him/her.
I like it in the type of usage shown above but would not normally use it in other circumstances. Nested ternary operators are probably not a good idea. -
And/or if statement in rtf templates.
Hi all,
I'm using XML Publisher 4.5.
I have created a word template file (rtf) for my reports. I need to be able to show some content in the template file by using and and/or if statement.
fx. <?if:doc_type='STANDARD'?> OR <?if:doc_type='DEFAULT'?>
How can I do this?
In advance thank you.
Best regards
KennethHi D,
Thank you for your answer.
I have seriously thought about that solution; but I don't think it's a smart way to do it.
If i do it like that, i need to copy the whole table and paste it inside the if statements.
I have two xml elements that I need to make the decisions on. POH_PO_TYPE & CP_RELEASE_NUM.
POH_PO_TYPE can be: STANDARD, RELEASE or BLANKET.
CP_RELEASE_NUM can be: '' or N
If POH_PO_TYPE is RELEASE AND CP_RELEASE_NUM is not ''
OR POH_PO_TYPE is STANDARD
OR POH_PO_TYPE is BLANKET AND CP_RELEASE_NUM is ''
THEN show table (which contains the whole PO).
It shall show the content of the PO in any of these cases.
BR Kenneth -
Hi srinivas bobbala,
Thank you for your response.But I think my quesition was not clear.My ques... is for suppose there is one datafile for importing like.. "datafile_21" Here my intention is it takes file from datafile_21 only but it appears in import statement like datafile_21<<curmon>>.
import database sample.sample data from data_file "c:\\ABC\datafile_21_AUG.txt" using server rules_file datafile on error abort;
In this it takes datafile from datafile_21.But it appears like datafile_21_AUG in import statement.This AUG coming from batch file.
Essmsh c:\\ABC\loadmxl.mxl %curmon%No it is not possible.
I assume the data file "datafile_21" is first renamed to datafile_21_${CurrMth} in the batchscript.
After that this data file *datafile_21_${CurrMth}* is pointed in the import statement.
In the logs you will see this file as datafile_21_Aug. -
Help with if statement in cursor and for loop to get output
I have the following cursor and and want to use if else statement to get the output. The cursor is working fine. What i need help with is how to use and if else statement to only get the folderrsn that have not been updated in the last 30 days. If you look at the talbe below my select statement is showing folderrs 291631 was updated only 4 days ago and folderrsn 322160 was also updated 4 days ago.
I do not want these two to appear in my result set. So i need to use if else so that my result only shows all folderrsn that havenot been updated in the last 30 days.
Here is my cursor:
/*Cursor for Email procedure. It is working Shows userid and the string
You need to update these folders*/
DECLARE
a_user varchar2(200) := null;
v_assigneduser varchar2(20);
v_folderrsn varchar2(200);
v_emailaddress varchar2(60);
v_subject varchar2(200);
Cursor c IS
SELECT assigneduser, vu.emailaddress, f.folderrsn, trunc(f.indate) AS "IN DATE",
MAX (trunc(fpa.attemptdate)) AS "LAST UPDATE",
trunc(sysdate) - MAX (trunc(fpa.attemptdate)) AS "DAYS PAST"
--MAX (TRUNC (fpa.attemptdate)) - TRUNC (f.indate) AS "NUMBER OF DAYS"
FROM folder f, folderprocess fp, validuser vu, folderprocessattempt fpa
WHERE f.foldertype = 'HJ'
AND f.statuscode NOT IN (20, 40)
AND f.folderrsn = fp.folderrsn
AND fp.processrsn = fpa.processrsn
AND vu.userid = fp.assigneduser
AND vu.statuscode = 1
GROUP BY assigneduser, vu.emailaddress, f.folderrsn, f.indate
ORDER BY fp.assigneduser;
BEGIN
FOR c1 IN c LOOP
IF (c1.assigneduser = v_assigneduser) THEN
dbms_output.put_line(' ' || c1.folderrsn);
else
dbms_output.put(c1.assigneduser ||': ' || 'Overdue Folders:You need to update these folders: Folderrsn: '||c1.folderrsn);
END IF;
a_user := c1.assigneduser;
v_assigneduser := c1.assigneduser;
v_folderrsn := c1.folderrsn;
v_emailaddress := c1.emailaddress;
v_subject := 'Subject: Project for';
END LOOP;
END;
The reason I have included the folowing table is that I want you to see the output from the select statement. that way you can help me do the if statement in the above cursor so that the result will look like this:
emailaddress
Subject: 'Project for ' || V_email || 'not updated in the last 30 days'
v_folderrsn
v_folderrsn
etc
[email protected]......
Subject: 'Project for: ' Jim...'not updated in the last 30 days'
284087
292709
[email protected].....
Subject: 'Project for: ' Kim...'not updated in the last 30 days'
185083
190121
190132
190133
190159
190237
284109
286647
294631
322922
[email protected]....
Subject: 'Project for: Joe...'not updated in the last 30 days'
183332
183336
[email protected]......
Subject: 'Project for: Sam...'not updated in the last 30 days'
183876
183877
183879
183880
183881
183882
183883
183884
183886
183887
183888
This table is to shwo you the select statement output. I want to eliminnate the two days that that are less than 30 days since the last update in the last column.
Assigneduser....Email.........Folderrsn...........indate.............maxattemptdate...days past since last update
JIM......... jim@ aol.com.... 284087............. 9/28/2006.......10/5/2006...........690
JIM......... jim@ aol.com.... 292709............. 3/20/2007.......3/28/2007............516
KIM......... kim@ aol.com.... 185083............. 8/31/2004.......2/9/2006............. 928
KIM...........kim@ aol.com.... 190121............. 2/9/2006.........2/9/2006.............928
KIM...........kim@ aol.com.... 190132............. 2/9/2006.........2/9/2006.............928
KIM...........kim@ aol.com.... 190133............. 2/9/2006.........2/9/2006.............928
KIM...........kim@ aol.com.... 190159............. 2/13/2006.......2/14/2006............923
KIM...........kim@ aol.com.... 190237............. 2/23/2006.......2/23/2006............914
KIM...........kim@ aol.com.... 284109............. 9/28/2006.......9/28/2006............697
KIM...........kim@ aol.com.... 286647............. 11/7/2006.......12/5/2006............629
KIM...........kim@ aol.com.... 294631............. 4/2/2007.........3/4/2008.............174
KIM...........kim@ aol.com.... 322922............. 7/29/2008.......7/29/2008............27
JOE...........joe@ aol.com.... 183332............. 1/28/2004.......4/23/2004............1585
JOE...........joe@ aol.com.... 183336............. 1/28/2004.......3/9/2004.............1630
SAM...........sam@ aol.com....183876.............3/5/2004.........3/8/2004.............1631
SAM...........sam@ aol.com....183877.............3/5/2004.........3/8/2004.............1631
SAM...........sam@ aol.com....183879.............3/5/2004.........3/8/2004.............1631
SAM...........sam@ aol.com....183880.............3/5/2004.........3/8/2004.............1631
SAM...........sam@ aol.com....183881.............3/5/2004.........3/8/2004.............1631
SAM...........sam@ aol.com....183882.............3/5/2004.........3/8/2004.............1631
SAM...........sam@ aol.com....183883.............3/5/2004.........3/8/2004.............1631
SAM...........sam@ aol.com....183884.............3/5/2004.........3/8/2004............ 1631
SAM...........sam@ aol.com....183886.............3/5/2004.........3/8/2004............ 1631
SAM...........sam@ aol.com....183887.............3/5/2004.........3/8/2004............ 1631
SAM...........sam@ aol.com....183888.............3/5/2004.........3/8/2004............ 1631
PAT...........pat@ aol.com.....291630.............2/23/2007.......7/8/2008............ 48
PAT...........pat@ aol.com.....313990.............2/27/2008.......7/28/2008............28
NED...........ned@ aol.com.....190681.............4/4/2006........8/10/2006............746
NED...........ned@ aol.com......95467.............6/14/2006.......11/6/2006............658
NED...........ned@ aol.com......286688.............11/8/2006.......10/3/2007............327
NED...........ned@ aol.com.....291631.............2/23/2007.......8/21/2008............4
NED...........ned@ aol.com.....292111.............3/7/2007.........2/26/2008............181
NED...........ned@ aol.com.....292410.............3/15/2007.......7/22/2008............34
NED...........ned@ aol.com.....299410.............6/27/2007.......2/27/2008............180
NED...........ned@ aol.com.....303790.............9/19/2007.......9/19/2007............341
NED...........ned@ aol.com.....304268.............9/24/2007.......3/3/2008............ 175
NED...........ned@ aol.com.....308228.............12/6/2007.......12/6/2007............263
NED...........ned@ aol.com.....316689.............3/19/2008.......3/19/2008............159
NED...........ned@ aol.com.....316789.............3/20/2008.......3/20/2008............158
NED...........ned@ aol.com.....317528.............3/25/2008.......3/25/2008............153
NED...........ned@ aol.com.....321476.............6/4/2008.........6/17/2008............69
NED...........ned@ aol.com.....322160.............7/3/2008.........8/21/2008............4
MOE...........moe@ aol.com.....184169.............4/5/2004.......12/5/2006............629
[email protected]/27/2004.......3/8/2004............1631
How do I incorporate a if else statement in the above cursor so the two days less than 30 days since last update are not returned. I do not want to send email if the project have been updated within the last 30 days.
Edited by: user4653174 on Aug 25, 2008 2:40 PManalytical functions: http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/functions2a.htm#81409
CASE
http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm#36899
http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96624/04_struc.htm#5997
Incorporating either of these into your query should assist you in returning the desired results. -
I have a Y9 Computer Science Exam next week and I know that this will probably be one of the questions on it so I need to know the answer. What is the difference?
An If statement executes once IF the statement is true:
If 1 = 2/2 Then
Textwindow.writeline("True")
EndIf
A While statement executes WHILE the statement is true:
While 4 = 2+2
'Will keep looping while it is true
EndWhile
A For statement loops a number in increment:
For i = 1 to 10
'Every time through, i gets bigger by one until it equals 10
EndFor
It is written: "'As surely as I live,' says the Lord, 'every knee will bow before me; every tongue will acknowledge God.'" Romans 14:11 -
regarding the following sql:
SELECT a.lname, a.fname, a.user_id, c.address, c.city,
c.zip, c.addresstypeid, d.descriptor as state
FROM users a, address c, maintstatetype d
WHERE a.user_id = c.user_id(+)
AND c.statetypeid = d.statetypeid(+)
AND c.addresstypeid in (1,2,3,4)
I have a database of users and addresses. Each user can
have multiple addresses and the addresses are
designated by addresstypeid. In plain english, what I want
to pull is "If they have an addresstypeid of 1, pull that one
only, if not, check if they have a 2 and use that, if not, check
for a 3, etc..".
Any help with this?What you want, then, is to pull the address with the minimum addresstypeid ..
SELECT a.lname, a.fname, a.user_id, c.address, c.city,
c.zip, c.addresstypeid, d.descriptor as state
FROM users a, address c, maintstatetype d
WHERE a.user_id = c.user_id(+)
AND c.statetypeid = d.statetypeid(+)
AND c.addresstypeid =
(select min(c2.addresstypeid)
from address c2
where c2.userid=a.userid
I'm not sure what this will do to your outerjoin, though. You might have to get funky with a union ...
SELECT a.lname, a.fname, a.user_id, c.address, c.city,
c.zip, c.addresstypeid, d.descriptor as state
FROM users a, address c, maintstatetype d
WHERE a.user_id = c.user_id
AND c.statetypeid = d.statetypeid
AND c.addresstypeid =
(select min(c2.addresstypeid)
from address c2
where c2.userid=a.userid
Union all
SELECT a.lname, a.fname, a.user_id, to_char(null), to_char(null),
to_char(null), to_char(null), to_char(null)
FROM users a
WHERE not exists
(select 1
from address c
where c.userid=a.userid
) -
'IF' statement in a select statment?
I have the following cursor in a package specification;
cursor c_sales_code is
select sales_condition||' MC '||sales_option
from sales;This will return something like: 'T300 MC 9'
MC means 'multiple choice' for when there are multiple options. Although, sales_option is sometimes null and in this case I just want 'T300' to be returned, not 'T300 MC'.
How would I go about doing this?
Thanks,
fakelvisUse
CASE and DECODE
to add the functoinality of Conditional Statements in Your SQL Statements..
These two CASE / DECODE will help you to get your desired output -
I need to choose between value1 and value2 within a select statement.
TableA
Flag (char)
Value1
Value2
ItemDesc
pseudo code
select ItemDesc, (if Flag = 'y' then Value1 else Value2) as Price from TableA;
How can this be done?select itemdesc,
sum (case
when flag = 'y'
then (case
when value1 < 10
then value1 * 1.2
else value1
end)
else value2
end
) as price
from tablea
group by itemdesc; -
If statement in select statement alias
I have the following select statement. It has the alias Survivors, Deaths and "All Cases". Is it posible to use :P_LANGUAGE variable to say that -- IF :P_LANGUAGE = FRENCH THEN alias are Survivants for survivors, Décès for Deaths, Tous_les_cas for All Cases. Please advise
SELECT ALL T_NTR_MULTIBAR.CAT, T_NTR_MULTIBAR.NUM_CASES_LEFTBAR AS Survivors,
T_NTR_MULTIBAR.NUM_CASES_MIDDLEBAR AS Deaths, T_NTR_MULTIBAR.NUM_CASES_RIGHTBAR AS "All Cases"
FROM T_NTR_MULTIBAR
WHERE INSTANCE_NUM = :P_INSTANCENUM
order by ORDERSYou may not be able to add this condition inside the SQL Statement. But you can add this condition outside the statement, if you're using PL/SQL...
IF :p_language = french THEN
SELECT ALL t_ntr_multibar.cat,
t_ntr_multibar.num_cases_leftbar AS survivors,
t_ntr_multibar.num_cases_middlebar AS deaths,
t_ntr_multibar.num_cases_rightbar AS "All Cases"
ELSE
END IF; -
I'm trying to set up a formula similiar to an If then statement with the PLD, and not having any luck. I need to create a formula on a sales order that says if there is no frieght on the order display "0.00".
Thanks.
EricHi,
Create a field with empty value (Say field ID is 100).
Create a formula field which equals fields 100 and 186 (Say field ID is 101).
Create a formula field which has "not equals" as relation, within fields 100 and 186 (Say field ID is 102).
Create a field with the text 0. Link it with the field 101. Put it in the same place as the 186.
Link the 186 field with the 102.
Result: 0 will be shown when 186 is empty, value of 186 when is not empty.
Hope is clear,
Ibai Peñ
Maybe you are looking for
-
Restoring and backing up my 2nd hand computer
I own a macbook pro....i bought it from my uncle who previously owned it. I want to back up all my files and restore it to original factory settings. how do i save all my data and a few of my programs? It is running slow, and i know there is too much
-
PI Message payload truncated..
Hi, Here is the scenario, txt file -> PI -> XML File Operation mapping consists of 2 stages: txt file -> Message Mapping -> pass as a string to one node of an XML file XML File generated from previous step -> Java Mapping -> XML file (wrapped up with
-
Problem with speed after adding external html "template
HI I created nice looking html "template" for my site in program Aristeer 2. Basicly it created 3 files for me- *.HTML (about 10kb) *.CSS(avout 25kb) and *.js(javascript about 7kb). I was thinking that it will work perfectly ,when i will just define
-
Trouble with array to spreadsheet string
I am having trouble with the array to spreadsheet string. I have a 1-d array of string, the output spreadsheet string never puts a space on the first row, but all others. example: 05:59:29.170 00000101 8 00 00 07 00 0B 0E 0D 0C 05:59:2
-
im about to take a course an online course. They don't currently support Mac. They support explore 8 or higher, windows vista, or mozilla. I dont want to by a PC, is there anyway to get these operating systems on a Mac.