我有select
语句,使用QUOTNAME
为每个结果添加单引号和逗号。
SELECT QUOTENAME(field1,'''')+',' AS [1]
这改变了结果。
1
11111
22222
33333
44444
到此
1
'11111',
'22222',
'33333',
'44444',
但是我想知道是否可以删除最后一行的逗号?太像这样了。
1
'11111',
'22222',
'33333',
'44444'
编辑:我应该提到这是一个视图
答案 0 :(得分:3)
SELECT QUOTENAME(field1,'''')+
case when row_number() over(order by (select 1))=
count(*) over () then '' else ',' end AS [1]
FROM <table>
答案 1 :(得分:0)
尝试这样的事情
DECLARE @count int
SELECT @count = COUNT(*) FROM my_table
SELECT QUOTENAME(field1, '''') + CASE WHEN ROW_NUMBER() OVER (ORDER BY field1) < @count THEN ',' ELSE '' END AS [1]
FROM my_table
答案 2 :(得分:0)
我想说SQL是格式化数据的错误位置,应该在您的应用程序或客户端中完成。
但是,正如您所说,这是可能的,这是一种方法:
WITH
MyData AS (
SELECT
field1,
ROW_NUMBER() OVER(ORDER BY field1 DESC) AS rowNo
FROM Data
)
SELECT
CONCAT(
QUOTENAME( field1, '''' ),
(CASE WHEN rowNo <> 1 THEN ',' END)
) AS [1]
FROM MyData
ORDER BY rowNo DESC;