gpt4 book ai didi

sql - 使用来自多个列的数据填充单个 SQL Server 列并为值添加前缀

转载 作者:行者123 更新时间:2023-12-04 04:37:16 25 4
gpt4 key购买 nike

更新 在插入值并为其分配 p_id = 0 之前,我最终只使用了插入,结果是我需要的。谢谢!

INSERT INTO table2 (p_id,value)
Values(0,@@SYS=DEV');

我试图将 Table1 中的 3 列组合起来,并将 Table2 中的值放在一个列中,但我还想用 A、& B 和 C 为值添加前缀,如下所示。 P_Id 是自动递增的。

表1
+---------+--------+-----------+
| Emp_ID | Status | hire_date |
+---------+--------+-----------+
| 12345 | happy | 10/10/2005|
| 54321 | sad | 12/01/2009|
+---------+--------+-----------+

插入表2....

我以为我可以在这个解决方案中插入一个静态行,但它在每个新的 emp_id 上重复,而我只需要在顶行一次。
+------+--------------+
| P_Id | Info |
+---------------------+
| 1 | @@=Dev |
| 2 | A,12345 |
| 3 | B,happy |
| 4 | C,10/10/2005 |
| 5 | A,54321 |
| 6 | B,sad |
| 7 | C,12/01/2009 |
+------+--------------+

非常感谢任何帮助!环境是 SQL Server 2008。

最佳答案

您可以在一个选择中执行此操作,如下所示:

with cte as (
select T.Emp_ID, C.Value
from Table1 as T
outer apply (values
('A,' + cast(T.Emp_ID as varchar(max))),
('B,' + T.Status),
('C,' + convert(varchar(10), T.hire_date, 103))
) as C(Value)
)
-- insert into Table2
select
row_number() over(order by Emp_ID, Value) as p_id,
Value
from cte

sql fiddle demo

关于sql - 使用来自多个列的数据填充单个 SQL Server 列并为值添加前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19550234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com