有一个数组@array = select username from usertable
并将参数传递给另一个查询
SELECT
*
FROM transactiontable TT
WHERE TT.name in (SELECT value FROM string_split(@array, ','))
这样做的好处是什么?
我不能只做SELECT * from transcationtbale TT WHERE TT.name in @array
吗?
还有SELECT value FROM expression
是什么?
谢谢
答案 0 :(得分:1)
似乎“ usertable”中的“ username”字段是一个类似于“ user1,user2,user3”的字符串。是吗?
如果不是,则使用以下查询:
SELECT * from transcationtbale TT WHERE TT.name in (select username from usertable)
答案 1 :(得分:1)
STRING_SPLIT
用于通过指定的分隔符分隔字符串。请read this description at MSDN。
让我举个例子:
SELECT * FROM STRING_SPLIT('Adam,Joseph,Jon',',')
但是,如果您从表格中选择,则只需使用:
SELECT UserName FROM UserTable
它们之间没有好处,无法比拟,就像比较苹果和桔子。