小编Bhu*_*ban的帖子

从sql server表中动态选择列

假设我有一个实际存储记录的表,它看起来像

Create Table dbo.Info
(
 SN int primary key identity(1,1),
 FirstName nvarchar(50) not null,
 LastName nvarchar(50) not null,
 Gender char(1) default 'M',
 Age int check(Age>0)
)
Run Code Online (Sandbox Code Playgroud)

现在为了报告目的,我只需要这个表列名并保存在另一个表中

Create Table Report.InfoColumnOrder
(
 SN int primary key identity(1,1),
 UserId int,
 ColumnName nvarchar(100)
)
Run Code Online (Sandbox Code Playgroud)

因此记录看起来像

1, 1, FirstName
2, 1, LastName
3, 1, Gender
4, 2, LastName
5, 2, FirstName
6, 2, Age
7, 2, Gender
Run Code Online (Sandbox Code Playgroud)

现在,当 id 为 1 的用户登录并希望从表 Info select 命令中获取报告时,应如下所示

Select FirstName, LastName, Gender from dbo.Info
Run Code Online (Sandbox Code Playgroud)

而对于 id 为 …

sql-server-2008 sql-server sql-server-2008-r2 c#

5
推荐指数
1
解决办法
2万
查看次数

在sql中将多列转换为2列并将单行转换为多行

使用Select top 1语句我必须从没有任何唯一键的 8 列表中检索数据。现在我想将此表转换为两列:原始列名到第一列,其各自的值到第二列。

像这样的原始表:

Column1 | Column2 | Column3 | Column4 
55      | 108     | 555     | 85
Run Code Online (Sandbox Code Playgroud)

和预期的结果:

ColumnName | Value
Column1    | 55
Column2    | 108
Column3    | 555
Column4    | 85
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2008-r2

1
推荐指数
1
解决办法
5331
查看次数