根据每个列表

时间:2018-05-21 09:29:34

标签: sql-server

我有问题。 我想在我的查询'select .. from .. where'子句中显示field_name。

在我的日志记录表中,该表仅保留[date],[table_id],[field_id] ..字段,我需要在我的选择中显示'field_name'但是没有任何其他表可以'加入'根据{{​​1}}中的[field_name]获取[field_id]。当我从谷歌搜索时,似乎我可以从名为'select .. from'表的SQL系统中获取field_name。但这对我的SQL级别来说太复杂了,因为这个sys.coloums不是直截了当的。在所有每个字段编号依赖于表id本身之前,它会混合所有表。

任何知道如何编写好的查询以选择field_name的人都会帮助:)

'sys.columns'

我当前的查询:

log_list table
[date],[table_id],[field_id],[company_name],...

感谢您的关注。

1 个答案:

答案 0 :(得分:0)

您的标记没有说明您正在使用的SQL Server版本,假设您使用的是2008+,那么系统功能

COL_NAME ( table_id , column_id )  

如果你提供table_id和column_id会得到你的名字,详细参考请点击这里:COL_NAME (Transact-SQL)

如果这对你来说不是一个有效的选项,那么仔细看看sys.columns,它返回的object_id实际上是表的object_id,应该是你的table_id,所以如果你做了类似的事情,它应该工作:

select C.name AS column_name
...
FROM ...
...
join sys.columns C on yourtable.table_id = C.object_id and yourtable.column_id = C.column_id