c# - 在使用 IN 的内部联接中使用 VARCHAR(Max)(这实际上是一个字符串 [])
问题描述
我想做的是连接两个表。
表 1 将具有此设置
CREATE TABLE Table1
(
PkId INT Identity(1,1) NOT NULL,
ListOfProducts VARCHAR(MAX) NULL,
ProductWareHouse VARCHAR(Max) NULL,
CONSTRAINT PkId PRIMARY KEY (PkId)
)
表2是这样设置的
CREATE TABLE Table2
(
PkId INT Identity(1,1) NOT NULL,
Product VARCHAR(MAX) NULL,
ProductCost DECIMAL(38,2) NOT NULL,
CONSTRAINT PkId PRIMARY KEY (PkId)
)
表 1ListOfProducts
是真正的string[]
表 2 和表 1 的Product
链接ListOfProducts
。
我真正想要完成的是两个表的内部连接,看起来ListOfProducts
实际上完成了内部连接,所以像这样
SELECT *
FROM TABLE1
INNER JOIN TABLE 2 ON Product IN(ListOfProducts)
WHERE ProductWareHouse = 'Warehouse1'
ListOfProducts
值看起来像这样:[Oranges, Apples]
.
解决方案
方法一:
JOIN ... ON ListOfProducts like '%' + Product + '%'
方法二:先去掉左右括号,然后:
JOIN ... ON Product in (select value from string_split(ListOfProducts,', '))
两者都非常低效。
推荐阅读
- powershell - 参数集:需要特定的参数组合
- github-pages - 使用 github 页面写入服务器
- javascript - 如果服务器响应时间过长,则取消表单发布
- r - 小鼠的被动插补给出错误的总分
- xcode - Xcode 在调试时为所有 NSString 显示相同的内容
- yeoman - Yeoman 发电机启动极慢
- android - PopupWindow 重叠 textView
- scala - 嵌套 WrappedArrays 上的 Spark 映射
- laravel - 我的网站不会在 laravel 的移动设备上滚动
- python - 在 Ruamel Yaml 中加载重复键