FIND_IN_SET(PARENTID, @PIDS)的@PIDS怎么取值
时间: 2023-11-23 14:55:26 浏览: 47
根据提供的引用,@PIDS应该是一个字符串,其中包含逗号分隔的多个值。在使用FIND_IN_SET函数时,将PARENTID作为第一个参数,将@PIDS作为第二个参数传递给函数。@PIDS的值应该是一个逗号分隔的字符串,其中包含多个值,例如'1,2,3,4,5'。FIND_IN_SET函数将在@PIDS中查找PARENTID的值,并返回其在@PIDS中的位置。如果未找到,则返回0。
以下是一个示例,演示如何使用FIND_IN_SET函数:
```sql
SELECT * FROM my_table WHERE FIND_IN_SET(PARENTID, '1,2,3,4,5') > 0;
```
上述示例将从my_table表中选择所有PARENTID值在'1,2,3,4,5'中的行。
相关问题
ALTER FUNCTION [dbo].[FindParent](@Counter INT) RETURNS int AS BEGIN WHILE @Counter <>0 BEGIN declare @v int; set @Counter=(select parentid from EIS_KnowledgeCategory where @Counter=FLID); @Counter=@v END return @v END
这段代码定义了一个名为 `FindParent` 的标量函数。该函数接受一个整数参数 `@Counter`,并返回一个整数值。
函数主体使用了一个 `WHILE` 循环,当 `@Counter` 不等于 0 时执行。循环内部首先声明了一个变量 `@v`,然后通过查询 `EIS_KnowledgeCategory` 表,将父级的 `parentid` 赋值给 `@Counter`。最后将 `@v` 的值赋给 `@Counter`。
循环结束后,函数使用 `RETURN` 语句返回了变量 `@v` 的值作为函数的结果。
需要注意的是,代码中有一个小错误,应该将 `@Counter=@v` 替换为 `SET @Counter=@v`,以正确赋值。修改后的代码如下:
```sql
ALTER FUNCTION [dbo].[FindParent](@Counter INT)
RETURNS int
AS
BEGIN
WHILE @Counter <> 0
BEGIN
DECLARE @v int;
SET @v = (SELECT parentid FROM EIS_KnowledgeCategory WHERE @Counter = FLID);
SET @Counter = @v;
END
RETURN @v;
END
```
请注意,这只是修改了代码中的错误,并没有对函数的逻辑进行评估。如果你有其他问题或需要进一步帮助,请随时提问。
表org_base中orgId,parentId,orgName字段,有完整的组织机构数据若干条,现在需要将表中数据复制为另外一个组织机构,但orgName不变的java代码
假设需要将表中所有数据复制到另一个组织机构,可以使用如下的Java代码:
```java
// 假设原组织机构的orgId为1,新组织机构的orgId为2
int orgId = 2;
int parentId = 0; // 新组织机构的parentId为0,即根节点
String orgName = null; // orgName不变,不需要修改
PreparedStatement stmt = null;
ResultSet rs = null;
try {
// 查询原组织机构的数据
String sql = "SELECT orgId, parentId, orgName FROM org_base WHERE orgId = ?";
stmt = conn.prepareStatement(sql);
stmt.setInt(1, 1);
rs = stmt.executeQuery();
// 复制数据到新组织机构
while (rs.next()) {
orgId = rs.getInt("orgId");
parentId = rs.getInt("parentId");
orgName = rs.getString("orgName");
// 插入新数据
sql = "INSERT INTO org_base (orgId, parentId, orgName) VALUES (?, ?, ?)";
stmt = conn.prepareStatement(sql);
stmt.setInt(1, orgId);
stmt.setInt(2, parentId);
stmt.setString(3, orgName);
stmt.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭ResultSet、Statement等资源
}
```
上述代码中,使用了JDBC API来查询原组织机构的数据,并将数据复制到新组织机构中。其中,使用了PreparedStatement来执行SQL语句,可以避免SQL注入等问题。由于orgName不变,可以直接从ResultSet中获取值,不需要进行修改。在复制数据时,使用了INSERT INTO语句来插入新数据。需要注意的是,如果表中已存在相同的orgId,会导致插入失败,需要进行处理。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)