Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
T SQL将行转换为字符串_Sql_Sql Server 2005_Tsql - Fatal编程技术网

T SQL将行转换为字符串

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' 我

在SQLServer2005中是否有有效的方法将一行数据读入字符串

例如,如果我的表格如下所示:

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