T SQL将行转换为字符串
在SQLServer2005中是否有有效的方法将一行数据读入字符串 例如,如果我的表格如下所示:T SQL将行转换为字符串,sql,sql-server-2005,tsql,Sql,Sql Server 2005,Tsql,在SQLServer2005中是否有有效的方法将一行数据读入字符串 例如,如果我的表格如下所示: ID | First Name | Last Name | Color ----------------------------------- 1 | Timmy | Jones | pink 2 | Martha | Fisher | green 结果我可能会回来: '1 Timmy Jones pink' '2 Martha Fisher green' 我
ID | First Name | Last Name | Color
-----------------------------------
1 | Timmy | Jones | pink
2 | Martha | Fisher | green
结果我可能会回来:
'1 Timmy Jones pink'
'2 Martha Fisher green'
我最好能带上附加的列名返回,例如:
'ID: 1, First Name: Timmy, Last Name: Jones, Color: pink'
'ID: 2, First Name: Martha, Last Name: Fisher, Color: green'
更新:
我正在寻找一个动态的解决方案,所以我想根据信息模式进行查询会更合适 这实际上有一点帮助,因为我希望从更新触发器中设置它,所以我一次只能有一行,我可以查询主表检查数据类型的信息模式,以消除生成的表“插入”和“删除”阻塞的文本、ntext和图像 解决方案:(更新:必须添加更多代码以返回一个值)
选择CAST(ID为Varchar(8))+'+'+[名字]+'+'+[姓氏]+''+颜色
从表格中
要获取您提到的详细格式,请执行以下操作:
选择'ID:'+CAST(ID为Varchar(8))+',名字:'+[First Name]+',姓氏:'+[Last Name]+',颜色:'+Color
从表格中
编辑:现在假设ID是一个整数自动编号。最有可能的情况是,正如ajdams所指出的那样。您只需将立柱连接起来即可。如果你想得到列名,你必须混合使用动态sql、信息、模式视图和查询
SELECT cast(ID as varchar(10)) + ' ' + [First Name] + ' ' + [Last Name] + ' ' + Color
FROM MyTable
实际上,如果ID的数据类型为int,Patrick建议的解决方案将给您一个转换错误。你必须这样做 选择CAST(ID为varchar(10))+'+[名字]+'+[姓氏+'++颜色
从MYTABLE开始+1-让我来看看。我要补充的一点是,如果您想复制和粘贴结果,并且您在SQL Server Management Studio中工作,您可以告诉它以文本形式输出数据。如果数据集很大,您也可以输出到文件。AJDAM是正确的,但您只需要使用强制转换来克服反对意见。我正在寻找f或者是一个动态的解决方案,所以我想信息模式就是它所在的位置。
SELECT cast(ID as varchar(10)) + ' ' + [First Name] + ' ' + [Last Name] + ' ' + Color
FROM MyTable