Mic*_*cah 6 sql t-sql sql-server-2008
我有一张带有电话号码的桌子.我没有为每个号码吐出一行,而是返回逗号分隔的电话号码列表.在sql中最简单的方法是什么?一会儿循环?
其中一些答案过于复杂,包括合并和更复杂的XML查询.我经常用这个:
select @Phones=(
Select PhoneColumn+','
From TableName
For XML Path(''))
-- Remove trailing comma if necessary
select @Phones=left(@Phones,len(@Phones)-1)
Run Code Online (Sandbox Code Playgroud)
从这个问题看我的回答。该问题中还列出了其他几种方法。COALESCE 或 xml 路径应该可以解决问题。
编辑(添加我在上一个问题中的答案):
CREATE FUNCTION [dbo].[fn_MyFunction]()RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @str NVARCHAR(MAX)
DECLARE @Delimiter CHAR(2)
SET @Delimiter = ', '
SELECT @str = COALESCE(@str + @Delimiter,'') + AColumn
FROM dbo.myTable
RETURN RTRIM(LTRIM(@str))
END
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7096 次 |
| 最近记录: |