达梦sql ,传入一个日期列表,分别按照 日期中的列表进行数据查询
时间: 2024-10-27 15:03:28 浏览: 33
在达梦 SQL 中,如果你有一个包含多个日期的列表,想要针对每个日期执行不同的数据查询,你可以创建一个存储过程或者动态SQL。下面是一个基本的例子,假设你有一个名为 `date_list` 的列,它包含了你要查询的日期数组:
```sql
CREATE PROCEDURE QueryByDate(@date_list VARCHAR(255), @table_name VARCHAR(100))
AS
BEGIN
DECLARE @query NVARCHAR(MAX);
SET @query = N'';
-- 将日期列表分割成逗号分隔的值,并插入查询模板
SET @query = STUFF((
SELECT ', ' + QUOTENAME(dates.value(N'varchar(255)'), '''')
FROM STRING_SPLIT(@date_list, ',') AS dates
FOR XML PATH('')
), 1, 1, '');
-- 替换查询模板中的占位符
SET @query = 'SELECT * FROM ' + QUOTENAME(@table_name) + ' WHERE date_column IN (' + @query + ')';
EXEC sp_executesql @query; -- 执行动态SQL
END;
```
在这个例子中,你需要替换 `date_column` 为你实际表中的日期字段名,然后调用此存储过程,传递你的日期列表和表名:
```sql
EXEC QueryByDate('2022-01-01,2022-02-14', 'your_table_name');
```
这将会对每个日期执行一次独立的查询。
阅读全文