从数组中选择值

时间:2018-12-05 07:47:08

标签: sql-server

有一个数组@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是什么?

谢谢

2 个答案:

答案 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

它们之间没有好处,无法比拟,就像比较苹果和桔子。