我将这3个表合并到一个带有内部连接的报表查询中(这是一个简化的示例):
USERS
ID NAME CODE1 CODE2
1 James c1_2 c2_3
2 Bob c1_3 c2_1
C1
CODE1 VALUE
c1_1 interested
c1_2 maybe
c1_3 not interested
C2
CODE1 VALUE
c2_1 prepared
c2_2 self-study
c2_3 novice
查询结果如下所示:
NAME INTEREST PREPARED
James maybe novice
Bob not interested prepared
我想去掉查找表,只使用USERS表和一些聪明的REPLACE()语句创建这个查询结果。这是可以做到的吗?
谢谢!
发布于 2010-08-13 18:07:06
当然可以,但我不明白这一点。
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
ps。我知道这(很可能)不是你的意思,但我的猜测是,它总是比任何替换解决方案都要好,而且更灵活。
https://stackoverflow.com/questions/3475759
复制相似问题