首页 > 解决方案 > 从数组中选择值

问题描述

有一个数组@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

谢谢

标签: sql-server

解决方案


STRING_SPLIT用于通过指定的分隔符分隔字符串。请在 MSDN 上阅读此说明。让我举个例子:

SELECT * FROM STRING_SPLIT('Adam,Joseph,Jon',',')

但是,如果您从表中选择,则仅使用:

SELECT UserName FROM UserTable

它们之间没有任何好处,无法比较,就像比较苹果和橘子一样。


推荐阅读