MySQL select replace-使用手动值而不是联合查找表
我将这3个表组合到一个带有内部联接的报表查询中(这是一个简化的示例): 查询结果如下所示:MySQL select replace-使用手动值而不是联合查找表,mysql,Mysql,我将这3个表组合到一个带有内部联接的报表查询中(这是一个简化的示例): 查询结果如下所示: NAME INTEREST PREPARED James maybe novice Bob not interested prepared 我想去掉查找表,只使用USERS表和一些巧妙的REPLACE()语句创建这个查询结果。能做到吗 谢谢大家! 当然,但我看不出重点 SELECT u.Name, c1.Value, c2.Val
NAME INTEREST PREPARED
James maybe novice
Bob not interested prepared
我想去掉查找表,只使用USERS表和一些巧妙的REPLACE()语句创建这个查询结果。能做到吗
谢谢大家! 当然,但我看不出重点
SELECT u.Name, c1.Value, c2.Value
FROM dbo.Users u
INNER JOIN (
SELECT 'c1_1' as Code1, 'interested' as Value
UNION ALL SELECT 'c1_2', 'maybe'
UNION ALL SELECT 'c1_3', 'not interested'
) c1 ON c1.Code1 = u.Code1
INNER JOIN (
SELECT 'c2_1' as Code1, 'prepared' as Value
UNION ALL SELECT 'c2_2', 'self-study'
UNION ALL SELECT 'c2_3', 'novice'
) c2 ON c2.Code1 = u.Code2
注:我知道(很可能)这不是你的意思,但我的客户估计它总是优于任何替换解决方案,而且更灵活。当然,但我不明白这一点
SELECT u.Name, c1.Value, c2.Value
FROM dbo.Users u
INNER JOIN (
SELECT 'c1_1' as Code1, 'interested' as Value
UNION ALL SELECT 'c1_2', 'maybe'
UNION ALL SELECT 'c1_3', 'not interested'
) c1 ON c1.Code1 = u.Code1
INNER JOIN (
SELECT 'c2_1' as Code1, 'prepared' as Value
UNION ALL SELECT 'c2_2', 'self-study'
UNION ALL SELECT 'c2_3', 'novice'
) c2 ON c2.Code1 = u.Code2
另外,我知道(很可能)这不是你的意思,但我的客户估计它总是优于任何替换解决方案,而且更灵活。这正是我所需要的!我认为替换是唯一的选择,但这更好。我之所以需要它,是因为我有几十个像C1、C2这样的表,而且它们只需要一个select查询就可以将代码转换为人类可读的值。这些表只是挤满了数据库,现在我不再需要它们了。非常感谢!这正是我所需要的!我认为替换是唯一的选择,但这更好。我之所以需要它,是因为我有几十个像C1、C2这样的表,而且它们只需要一个select查询就可以将代码转换为人类可读的值。这些表只是挤满了数据库,现在我不再需要它们了。非常感谢!