Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I would like to know if it is possible change the data in SQL temporarily

I have three months as varchar July, August, and September. I would like to change them to 1, 2, and 3 respectively so that I can do the following:

SELECT * FROM
(
(SELECT aID, month AS monthA FROM tblA) AS a
INNER JOIN
(SELECT bID, month AS monthB FROM tblB) AS b
ON a.ID = b.ID
)
WHERE a.month < b.month

I know this works

SELECT * FROM
    (
    (SELECT aID, month AS monthA FROM tblA) AS a
    INNER JOIN
    (SELECT bID, month AS monthB FROM tblB) AS b
    ON a.ID = b.ID
    )
    WHERE (a.month = 'July' AND b.month = 'August')
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
257 views
Welcome To Ask or Share your Answers For Others

1 Answer

It sounds like you'd just like to just stage the varchar data as 1,2,3 and not necessarily change it in the Database is that correct?

Why don't you do a case stmt to change the values to 1,2,3 and then do what you need to.

 SELECT * FROM
(
(SELECT aID, CASE month WHEN 'July' THEN '1' WHEN 'August' THEN '2' WHEN 'September' THEN '3' ELSE month END AS monthA FROM tblA) AS a
INNER JOIN
(SELECT bID, CASE month WHEN 'July' THEN '1' WHEN 'August' THEN '2' WHEN 'September' THEN '3' ELSE month END AS monthB FROM tblB) AS b
ON a.aID = b.bID
)
WHERE a.monthA < b.monthB

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...