如何在 SQL SERVER 中使用 cell 的值作为 SELECT 参数



我有两个表。

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)

最新更新