我想交换表中两列的值,我发现在 SQL 中我们可以通过使用 Update 来做到这一点:
update the_table set first_name = last_name, last_name = first_name;
Run Code Online (Sandbox Code Playgroud)
它有效但我想知道 SQL 如何能够做到这一点而不覆盖其他列中的列中的数据?
我必须处理第三方数据库,我试图获取视图中使用的所有列,但我对它们进行了加密,
例如:而不是获取int
我NUMERO_SALARIE
知道TNumSal
为什么?
DECLARE @TableViewName NVARCHAR(128)
SET @TableViewName=N'DP_SALARIE'
SELECT b.name AS ColumnName, c.name AS DataType, b.max_length AS Length
FROM sys.all_objects a
INNER JOIN sys.all_columns b
ON a.object_id=b.object_id
INNER JOIN sys.types c
ON b.user_type_id=c.user_type_id
WHERE a.Name=@TableViewName
AND a.type IN ('U','V')
Run Code Online (Sandbox Code Playgroud)
有什么办法可以解密它们吗?
我有一个数据库,其中架构是:
CREATE TABLE [dbo].[Student]([Id] [int] NULL,[Name] [varchar](255) NULL,[Mark] [int] NULL)
INSERT [dbo].[Student] ([Id], [Name], [Mark]) VALUES (1, N'Medi', 10)
INSERT [dbo].[Student] ([Id], [Name], [Mark]) VALUES (2, N'Ibra', 15)
INSERT [dbo].[Student] ([Id], [Name], [Mark]) VALUES (3, N'Simo', 20)
Run Code Online (Sandbox Code Playgroud)
所以查询select * from Student
:
ID | 姓名 | 标记 |
---|---|---|
1 | 梅迪 | 10 |
2 | 伊布拉 | 15 |
3 | 西莫 | 20 |
但我希望第一行的标题如下所示:
ID | 姓名 | 标记 |
---|---|---|
ID | 姓名 | 标记 |
1 | 梅迪 | 10 |
2 | 伊布拉 | 15 |
3 | 西莫 | 20 |
为了建立这个结果,
我已经通过INFORMATION_SCHEMA
查询完成了此操作:
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS …
Run Code Online (Sandbox Code Playgroud)