朗月2022 发表于 2024-7-3 12:22:54

服务端命令SQL 不支持IN 参数(变量)

本帖最后由 Brian.Zhang 于 2024-7-3 22:56 编辑





必须自己拼写SQL




Brian.Zhang 发表于 2024-7-3 22:56:45

@分录类型 的这个参数占位符我记得在不同数据库里有不同的参数语法,比如SQL Server 使用 @,而 MySQL 可能使用 ? 或 :name。
所以,我们这是使用的什么数据库呀?

朗月2022 发表于 2024-7-4 08:15:39

常用的DB都有可以能使用

thq 发表于 2024-7-4 08:44:04

你分录类型这个参数都没定义啊

朗月2022 发表于 2024-7-4 08:52:31

定义了:

朗月2022 发表于 2024-7-4 09:13:33

常用的DB,包括 mysqlSQL都支持IN

咖啡里 发表于 2024-7-4 20:58:05

sqlserver 版本大于2016用   where itme_type in (select * from SELECT value FROM STRING_SPLIT(@je_bb,',')

小于2016版本需要调用自定义函数
CREATE FUNCTION .   
(   
@c VARCHAR(MAX) ,   
@split VARCHAR(50)   
)   
RETURNS @t TABLE ( col VARCHAR(50) )   
AS
BEGIN
    WHILE ( CHARINDEX(@split, @c) <> 0 )   
      BEGIN
            INSERT@t( col )   
            VALUES( SUBSTRING(@c, 1, CHARINDEX(@split, @c) - 1) )   
            SET @c = STUFF(@c, 1, CHARINDEX(@split, @c), '')   
      END
    INSERT@t( col ) VALUES( @c )   
    RETURN
END

GO

Brian.Zhang 发表于 2024-7-4 21:41:58

朗月2022 发表于 2024-7-4 09:13
常用的DB,包括 mysqlSQL都支持IN

是的都支持,但是不同数据库类型所用的语法不一样,我主要是想看您使用的什么数据库以及什么版本呢

朗月2022 发表于 2024-7-5 08:47:17

Oracle ,MySql,Sql Server

Brian.Zhang 发表于 2024-7-8 09:36:30

朗月2022 发表于 2024-7-5 08:47
Oracle ,MySql,Sql Server

供参考,建议您先检查一下语法是否对应

页: [1] 2
查看完整版本: 服务端命令SQL 不支持IN 参数(变量)