Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik GA: Multivariate Time Series in Qlik Predict: Get Details
cancel
Showing results for 
Search instead for 
Did you mean: 
_AnonymousUser
Specialist III
Specialist III

How to check if some column has string value in it

Hi All,
I'm working on one scenario. I have one column which is string and I need to store that as Integer in Target.
I know I can convert that using Integer.parseInt() function but the problem is source column have both string as well as numeric value in it. So I want to store numeric value as int in target and string value as null.
EX :
Source (varchar()) Target (Int)
123 123
ABC null

Please suggest your views on the above mentioned scenario.
Thanks,
Labels (2)
4 Replies
Anonymous
Not applicable

Hi
Write a routine and hard code to check if the input string is a numeric or a string. For example, go to Repository-->Code-->Routines and create a routine, let's call it MyRoutines:
package routines;
public class MyRoutines {

public static Boolean isNumeric(String str) {
if(str.equals("")){
return false;
}
for(int i=str.length();--i>=0;){
int chr=str.charAt(i);
if((chr<48&&chr!=45)|| chr>57)
return false;
}
return true;
}
}

and then call this routine in the job,
tFileInputDelimited--row1--tMap--tMysqlOutput
MyRoutines.isNumeric(row1.columnName)?Integer.parseInt(row1.columnName):null
Let us know if you have any troubles.
Best regards
Shong
alevy
Specialist
Specialist

Mathematical.NUM(<var>) will return 1 if the string parameter is all digits.
_AnonymousUser
Specialist III
Specialist III
Author

Hi,
In the table i have column of data type decimal(12,6) in infobright (mysql) db ,the values in the column have the values
as below:
356.400000
************
-129.840000
how to replace this **** value in the column to zero wherever it occurs
Anonymous
Not applicable

Hi,
In the table i have column of data type decimal(12,6) in infobright (mysql) db ,the values in the column have the values
as below:
356.400000
************
-129.840000
how to replace this **** value in the column to zero wherever it occurs

Read it as a string from db, and then convert it from String to BigDecimal on tMap with the expression as below:
row1.columnName.contains("*")?new java.math.BigDecimal("0"):new java.math.BigDecimal(row1.columnName)

Shong