我有两个表。
1.文本语言表:
| Key | En | Uk |
|'000'| 00 | 01 |
2.用户表
| Id | Language |
|'11'| 'En' |
我想创建一个从用户表中获取值的查询,并将其用作选择参数以从 TextLang 表中获取值。
例:
SELECT Value(Users.Language) FROM TextLang
INNER JOIN Users ON Users.Id='11'
WHERE Key='000'
结果:
| En |
| 00 |
所以我希望 Value(Users.Language) 等于 'En'
并且要进入这个,请选择值00
我该怎么做?谢谢!
像这样的 TSQL 会起作用,但它并不漂亮。不过,想出的东西相对较快。
无论哪种方式,据我所知,你都必须构建某种动态SQL才能做你想做的事情:)。
DECLARE @SQL VARCHAR(MAX), @LAN_COLUMN VARCHAR(25)
SELECT @LAN_COLUMN = Language
FROM TextLang
JOIN Users ON Users.Id='11'
WHERE Key = '000'
SELECT @SQL =
'Select '+@LAN_COLUMN+' FROM TextLang '
+' JOIN Users ON Users.Id=''11'''
+' WHERE Key = ''000'''
EXEC(@SQL)