1

查询结果只是数字,如果它们是字符串,则很容易阅读和理解。如何在查询结果中标记数字的等效字符串。

数字与字符串的映射必须在查询中。

从表中选择数字;查询结果为 9,2,4,7。字符串文字将被映射到这个数字。num 范围是从 {0-9} 0-预付,1-后付同样明智

4

2 回答 2

2

您可以CASE像这样使用表达式:

SELECT 
  ...
  CASE 
    WHEN 1 THEN 'Postpaid'
    WHEN 2 THEN 'prepaid'
    ...
   END
...

您也可以使用临时表来执行此操作,例如:

DECLARE @t Table(NumberToReplace INT, replacewith VARCHAR(50));
INSERT INTO @t VALUES
(1, 'Postpaid'),
(2, 'Prepaid'),
...

然后可以JOIN将两张表中的数字替换为对应的字符串:

SELECT 
  t1.Column1, t1.Column1, t2.replacewith
FROM YourTable t1
LEFT JOIN temp t2 ON t1.NumberToReplace = t2.NumberToReplace

我曾经为另一个表中没有对应字符串的数字LEFT JOIN提供值。NULL

这是 SQL 小提琴中的演示

于 2012-09-27T07:54:55.487 回答
1

这是你想要的吗?

SELECT id, IF(my_field REGEXP '[digit]', 'is_string', 'is_numeric') as result
FROM my_Table

看看这个http://sqlfiddle.com/#!2/48a6c/1

于 2012-09-27T06:51:31.713 回答