varchar:
SELECT DISTINCT A.COLUMN1, B.COLUMN2 FROM TABLEA A, TABLEB B WHERE
A.KEY_ID = B.FK_ID
ORDER BY CASE @ORDER_NAME
WHEN 'COL1' THEN CONVERT(varchar(nn),COLUMN1)
WHEN 'COL2' THEN CONVERT(varchar(23),COLUMN2,121)
ELSE
CONVERT(varchar(23),COLUMN2,121)
END ASC
, , :
SELECT DISTINCT A.COLUMN1, B.COLUMN2 FROM TABLEA A, TABLEB B WHERE
A.KEY_ID = B.FK_ID
ORDER BY CASE @ORDER_NAME
WHEN 'COL1' THEN CONVERT(varchar(nn),COLUMN1)+CONVERT(varchar(23),COLUMN2,121)
WHEN 'COL2' THEN CONVERT(varchar(23),COLUMN2,121)+RIGHT(REPLICATE('0',nn)+CONVERT(varchar(nn),COLUMN1),nn)
ELSE CONVERT(varchar(23),COLUMN2,121)+RIGHT(REPLICATE('0',nn)+CONVERT(varchar(nn),COLUMN1),nn)
END ASC