如何连接sql列值并用逗号(',')分隔。注意它也应该在null处终止。考虑一个表模式(假设所有数据类型都是varchar(100))
c1s | c2s | c3s | c4s | c5s | c6s | c7sa | b | c | d | null | f | g
c1s | c2s | c3s | c4s | c5s | c6s | c7s
a | b | c | d | null | f | g
所需输出应为:
a, b, c, d
使用mysql xampp
bvuwiixz1#
假设您有一个while循环,并且希望使用该循环创建sql或字符串。下面的代码片段将帮助您。这只是一个sudo代码,您需要根据您的需求进行构建:
cnt = 1;noOfPartitions = 20;SET @innerQuery = '';SET @alterQuery = CONCAT('select query ..........( ') ;WHILE cnt <= noOfPartitions DO SET @innerQuery = CONCAT('criteria .....'); SET cnt = cnt + 1; IF cnt <= noOfPartitions THEN SET @innerQuery = CONCAT(@innerQuery, ', '); ELSE SET @innerQuery = CONCAT(@innerQuery, ');'); END IF;END WHILE;SET @alterQuery = CONCAT(@alterQuery, @innerQuery);SELECT @alterQuery;
cnt = 1;
noOfPartitions = 20;
SET @innerQuery = '';
SET @alterQuery = CONCAT('select query ..........( ') ;
WHILE cnt <= noOfPartitions DO
SET @innerQuery = CONCAT('criteria .....');
SET cnt = cnt + 1;
IF cnt <= noOfPartitions THEN
SET @innerQuery = CONCAT(@innerQuery, ', ');
ELSE
SET @innerQuery = CONCAT(@innerQuery, ');');
END IF;
END WHILE;
SET @alterQuery = CONCAT(@alterQuery, @innerQuery);
SELECT @alterQuery;
这样您就可以创建动态sql或创建字符串。
o4tp2gmn2#
如果你真的需要这个,你可以用concat\ws。
SELECT CONCAT_WS(",", t.foo, t.foo1, t.foo2) AS myfield FROM mytable t
2条答案
按热度按时间bvuwiixz1#
假设您有一个while循环,并且希望使用该循环创建sql或字符串。
下面的代码片段将帮助您。这只是一个sudo代码,您需要根据您的需求进行构建:
这样您就可以创建动态sql或创建字符串。
o4tp2gmn2#
如果你真的需要这个,你可以用concat\ws。