2015-03-03 87 views
0

我得到这个代码,它的结果是:添加“字符串SQL

9316C747-76F7-4F3C-B35F-8E4CC96E214D, 
232009BF-9867-4A5C-BD83-E41F1398ECA8, 
68C15098-521F-4BE8-817B-26E73662E4EC, 
F1F38030-632B-4756-A3B7-C7702D3BAA08, 
D13947E5-E1BB-42CD-A5F8-02A9C0830979, 
6BA64EE9-8D64-4545-A8D6-3E8A1DD33877, 
DBA27DB9-FDE3-432B-B713-6801A3D01CA2 

我感兴趣的是得到一个列表如下所示:

'D91A4FE8-663A-4DDF-B6DB-95145DAD270B', 
'8B30CBCC-8093-42A5-A1C8-FE88DFB7640F', 
'A5E3202D-804C-477E-B54F-B80E72E871D9', 
'5CE13B9B-9D31-4A03-9C5C-19B1C6D5915F', 
'DB3447BC-2A89-4D8C-A865-6EB424D0EDA0', 
'E7C0AB31-DA72-4456-971D-95881EC6B7F7', 
'DDDECF74-7192-4B5F-91D6-ADF8756FFBFF', 
'AF3D30C3-7233-4146-9BA0-13FB03B3BF13' 

这怎么可能做这个?

DECLARE @listStr VARCHAR(MAX) 
SELECT @listStr = COALESCE(@listStr+',' , '') + cast(int_guid as varchar(max)) 
FROM ex_in 
SELECT @listStr 
+0

什么是生成的原始结果的代码?为了得到最终结果可能会更容易。 – Taryn 2015-03-03 13:42:00

+0

发表于底部 – Girre 2015-03-03 13:43:07

+0

您是否尝试在该代码中添加'''? – Taryn 2015-03-03 13:43:51

回答

0

您需要添加额外的引号。尝试这个。

DECLARE @listStr VARCHAR(MAX) 
SELECT @listStr = COALESCE(@listStr+''',''' , '') + cast(int_guid as varchar(max)) 
FROM ex_in 
SELECT '''' + @listStr+'''' 

样品展示

DECLARE @str VARCHAR(max) 

SELECT @str = Isnull(@str+''',''', '') + a 
FROM (SELECT '9316C747-76F7-4F3C-B35F-8E4CC96E214D' a 
     UNION 
     SELECT '232009BF-9867-4A5C-BD83-E41F1398ECA8' 
     UNION 
     SELECT '68C15098-521F-4BE8-817B-26E73662E4EC')dd 

PRINT '''' + @str + '''' 
+0

那么它会有点失去。这一切的关键是,我得到一个数据库表的状态代码出错了。我想用一个逗号列表'让它自动地尝试再次发送它们。我不想手动添加代码,并且字符串会不时地不同 – Girre 2015-03-03 13:52:33

+0

@ user3209714 - 这只是一个示例演示。更新了现在的检查 – 2015-03-03 13:54:07

+0

它用''把所有的字符串都删除了,但不是每个字符串我的坏处是我没有注意到你在顶部做了什么。大!非常感谢! – Girre 2015-03-03 13:56:49

0

试试这个:

DECLARE @listStr VARCHAR(MAX) = '' 

SELECT @listStr = @listStr + ',' + '''' + CAST(int_guid AS varchar(max)) + '''' 
FROM ex_in 

SET @listStr = STUFF(@listStr, 1, 1, '') 

SQL Fiddle Demo here