Hi Mehram,
Refer below query.
SQL
;WITH CTE
AS
(
SELECT 1 num
UNION ALL
SELECT num + 1
FROM CTE
WHERE num < 40
)
SELECT CONCAT(CAST(num AS VARCHAR(10)),
CASE
WHEN num % 100 IN (11,12,13) THEN 'th'
WHEN num % 10 = 1 THEN 'st'
WHEN num % 10 = 2 THEN 'nd'
WHEN num % 10 = 3 THEN 'rd'
ELSE 'th'
END) AS 'Ordinal'
FROM CTE
Output
Ordinal |
1st |
2nd |
3rd |
4th |
5th |
6th |
7th |
8th |
9th |
10th |
11th |
12th |
13th |
14th |
15th |
16th |
17th |
18th |
19th |
20th |
21st |
22nd |
23rd |
24th |
25th |
26th |
27th |
28th |
29th |
30th |
31st |
32nd |
33rd |
34th |
35th |
36th |
37th |
38th |
39th |
40th |