To directly answer your question, nest them.
IF MyField = 1
BEGIN
TRUNCATE TABLE AAA
END
ELSE
BEGIN
IF MyField = 2
BEGIN
TRUNCATE TABLE BBB
END
ELSE
BEGIN
IF MyField = 3
BEGIN
TRUNCATE TABLE CCC
END
END
END
I put plenty of BEGIN..END statements in here to show the levels, in case you have more code to put in there. Of course, if table truncation is all you need, you can eliminate all those:
IF MyField = 1
TRUNCATE TABLE AAA
ELSE
IF MyField = 2
TRUNCATE TABLE BBB
ELSE
TRUNCATE TABLE CCC
But even easier in this case would be using dynamic SQL:
DECLARE @SQL nvarchar(200)
SET @SQL = N'TRUNCATE TABLE '
SELECT @SQL = @SQL + CASE MyField
WHEN 1 THEN N'AAA'
WHEN 2 THEN N'BBB'
WHEN 3 THEN N'CCC' END
sp_executesql @SQL
While dynamic SQL is generally not a good idea, this would not be bad. I seriously doubt there is little plan cacheing for a truncate table statement, that would have any performance benefit.
Hope this helps