|
Archives of the TeradataForumMessage Posted: Thu, 21 Jun 2012 @ 15:12:23 GMT
<-- Anonymously Posted: Thursday, June 21, 2012 07:12 --> Hi, I am using Teradata V2R5 My query is: There is one column which I am fast exporting into a text file which has decimal as data-type. But when value in that column is NULL then I need to put some text e.g. 'NOT AVAILABLE' as a return value instead of NULL. This is converting data-type from decimal into varchar. The main problem is my column is in Italian, so the decimal will be shown as ',' instead of '.' And when I coalesce it to replace with the text if null, it converts the column into varchar and return '.' Instead of ',' which Is not accepted. I wrote below query for that: Select (TRIM (Case when xamount IS NULL THEN 'NOT AVAILABLE' ELSE (Case when SUBSTRING (xamount From 0 For INDEX(xamount, '.')) = '' THEN '0' ELSE SUBSTRING (xamount From 0 For INDEX(xamount, '.') ) END)||','|| SUBSTRING (xamount From INDEX(xamount, '.') + 1 For CHARACTER_LENGTH(cast(xamount as varchar(20)))) end)) From tablename Sample value: 0,777788 (decimal (18,6)) If coalesce used: .777788 (varchar ) Output of above query: 0,777788 (varchar (20)) Can anybody please tell me any other optimized way than this? Will this query be of low performance? If yes, then why?
| ||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||
Copyright 2016 - All Rights Reserved | ||||||||||||||||||||||||||||||||||||||||||||||||
Last Modified: 15 Jun 2023 | ||||||||||||||||||||||||||||||||||||||||||||||||