how to write a function to retrieve random character from A TO Z
Teradata Teradata Discussion Forums Teradata.com Discussion Forum
Visit Teradata.com
Home       Guidelines    Member List
Welcome Guest ( Login | Register )
        


This online forum is for user-to-user discussions of Teradata products, and is not an official customer support channel for Teradata. If you require direct assistance, please contact Teradata support.

12»»

how to write a function to retrieve random... Expand / Collapse
Author
Message
Posted 8/21/2008 10:01:36 AM
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

Group: Forum Members
Last Login: 8/22/2008 11:30:56 AM
Posts: 22, Visits: 41
Hi

I am trying to write a function in Teradata SQL Assistant to fetch a character at a time randomly between A to Z.

Can anyone help me in this regard?

Thanks


Dileep
Post #12673
Posted 8/21/2008 11:04:34 PM
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

Group: Forum Members
Last Login: 9/12/2008 6:51:28 AM
Posts: 36, Visits: 70
There are efficient ways than writing like this(i guess)... But this is one of the way to achive what you want

sel
case when a1=1 then 'A'
when a1=2 then 'B'
when a1=3 then 'C'
end,
random(1,3) as a1
from db_name.a



Regards,
GRR
Post #12679
Posted 8/22/2008 6:15:59 AM
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

Group: Forum Members
Last Login: 8/22/2008 11:30:56 AM
Posts: 22, Visits: 41


Hi

Am getting some question marks in place of the characters after executing the above query.
And what is that table a?

Thanks


Dileep
Post #12685
Posted 8/22/2008 6:26:54 AM
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

Group: Forum Members
Last Login: Today @ 7:30:07 AM
Posts: 197, Visits: 611
Hello,

On a very basic level, you can use following:

SELECT RandChar
FROM
(
SELECT
RANDOM(1, 26) AS Rand,
CASE WHEN Rand = 1 THEN 'A'
WHEN Rand = 2 THEN 'B'
WHEN Rand = 3 THEN 'C'
WHEN Rand = 4 THEN 'D'
WHEN Rand = 5 THEN 'E'
WHEN Rand = 6 THEN 'F'
WHEN Rand = 7 THEN 'G'
WHEN Rand = 8 THEN 'H'
WHEN Rand = 9 THEN 'I'
WHEN Rand = 10 THEN 'J'
WHEN Rand = 11 THEN 'K'
WHEN Rand = 12 THEN 'L'
WHEN Rand = 13 THEN 'M'
WHEN Rand = 14 THEN 'N'
WHEN Rand = 15 THEN 'O'
WHEN Rand = 16 THEN 'P'
WHEN Rand = 17 THEN 'Q'
WHEN Rand = 18 THEN 'R'
WHEN Rand = 19 THEN 'S'
WHEN Rand = 20 THEN 'T'
WHEN Rand = 21 THEN 'U'
WHEN Rand = 22 THEN 'V'
WHEN Rand = 23 THEN 'W'
WHEN Rand = 24 THEN 'X'
WHEN Rand = 25 THEN 'Y'
WHEN Rand = 26 THEN 'Z'
END AS RandChar
) QueryAlias1

HTH.

Regards,

Adeel
Post #12686
Posted 8/22/2008 6:37:59 AM
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

Group: Forum Members
Last Login: 8/22/2008 11:30:56 AM
Posts: 22, Visits: 41


Even then am getting a question mark in my result ....
i wonder why is it !!!
And i hope random() function will not generate the float numbers as in SQL !!!!!!!

Thanks


Dileep
Post #12688
Posted 8/22/2008 6:41:32 AM
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

Group: Forum Members
Last Login: Today @ 7:30:07 AM
Posts: 197, Visits: 611
Exactly how are you executing the query?

Regards,

Adeel
Post #12689
Posted 8/22/2008 7:12:20 AM
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

Group: Forum Members
Last Login: 8/22/2008 11:30:56 AM
Posts: 22, Visits: 41


This is the query exactly what i have:
SELECT RandChar
FROM
(
SELECT
RANDOM(1, 26) AS Rand,
CASE WHEN Rand = 1 THEN 'A'
WHEN Rand = 2 THEN 'B'
WHEN Rand = 3 THEN 'C'
WHEN Rand = 4 THEN 'D'
WHEN Rand = 5 THEN 'E'
WHEN Rand = 6 THEN 'F'
WHEN Rand = 7 THEN 'G'
WHEN Rand = 8 THEN 'H'
WHEN Rand = 9 THEN 'I'
WHEN Rand = 10 THEN 'J'
WHEN Rand = 11 THEN 'K'
WHEN Rand = 12 THEN 'L'
WHEN Rand = 13 THEN 'M'
WHEN Rand = 14 THEN 'N'
WHEN Rand = 15 THEN 'O'
WHEN Rand = 16 THEN 'P'
WHEN Rand = 17 THEN 'Q'
WHEN Rand = 18 THEN 'R'
WHEN Rand = 19 THEN 'S'
WHEN Rand = 20 THEN 'T'
WHEN Rand = 21 THEN 'U'
WHEN Rand = 22 THEN 'V'
WHEN Rand = 23 THEN 'W'
WHEN Rand = 24 THEN 'X'
WHEN Rand = 25 THEN 'Y'
WHEN Rand = 26 THEN 'Z'
END AS RandChar
) QueryAlias1

Thanks


Dileep
Post #12690
Posted 8/22/2008 7:20:56 AM
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

Group: Forum Members
Last Login: Today @ 7:30:07 AM
Posts: 197, Visits: 611
Can you try running the same in BTEQ and SQL Assistant and check the outputs?

Regards,

Adeel
Post #12691