各数据库拼接查询sql语句
各数据库拼接查询sql语句
一、Oracle
查询需要的拼接的字段,再利用列转行函数 wm_concat()
SELECT
\'select\' || \' \' || wm_concat (A . column_name) || \' \' || \'from\' || \' \' || \'表名\'
FROM
(
SELECT
column_name
FROM
user_tab_columns
WHERE
table_name = \'表名\'
) A
二、mysql
查询需要的拼接的字段,再利用列转行函数 GROUP_CONCAT()
SELECT
concat(
\'select \',
substring(
GROUP_CONCAT(COLUMN_NAME),
1,
LENGTH(
GROUP_CONCAT(COLUMN_NAME, \',\')
)
),
\' from \',
\' 表名 \'
)
FROM
information_schema. COLUMNS
WHERE
table_name = \'表名\'
AND table_schema = \'表所在数据库名\'
三、postgresql
自从postgres 9之后,又新增了一批内置的聚合函数
SELECT
\'select \' || string_agg (COLUMN_NAME, \',\') || \' from 表名\' AS string
FROM
information_schema. COLUMNS
WHERE
table_schema = \'数据库名\'
AND TABLE_NAME = \'表名\';
四、sqlserver
SELECT
\'select \' + stuff (
(
SELECT
\',\' + COLUMN_NAME
FROM
information_schema.COLUMNS
WHERE
table_name = \'db_forbidword\' FOR xml path (\'\')
),
1,
1,
\'\'
) + \' from db_forbidword\' AS string
- for xml path : 在SQL SERVER中我们有很多方法读取XML字段中的片段,反过来SQL SERVER也允许我们将表数据以XML方式显示,for xml path便是以xml显示的一种方式。
select \';\'+name from Student for xml path(\'\')
这段代码就是告诉数据库服务器要将生成的XML中name值以“;”方式进行拼接。 - STUFF(string,insert position,delete count,string inserted)函数是将一个字符串插入到另一个字符串中。插入时,插入的字符串可能删除指定数量的字符。
版权声明:本文为匿名原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。