sql - 在 THEN 中具有多个条件的 SQL Server 案例
问题描述
嗨,我在第二个 When 条件下遇到了 sql 问题
WHEN '1' THEN ('1000', '1001', '1003', '1005')
END)
问题是:[Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Incorrect syntax near ','. (102)
我的脚本:
SELECT MTRSUBSTITUTE.MTRL, MTRSUBSTITUTE.CODE AS EAN, MTRSUBSTITUTE.NAME AS WebName, MTRPACK.CODE AS SEAN, MTRSUBSTITUTE.MTRDIM1, MTRSUBSTITUTE.MTRDIM2, MTRL.CDIMCATEG1, MTRL.CDIMCATEG2, MTRL.WEBVIEW AS OnWeb, MTREXTRA.BOOL03 AS SkroutzFeed, MTRSUBSTITUTE.PRICER, MTREXTRA.BOOL01 AS Katastimata, SUM(ISNULL(CDIMFINDATA.OPNIMPQTY1,0)+ISNULL(CDIMFINDATA.IMPQTY1,0)-ISNULL(CDIMFINDATA.EXPQTY1,0)) AS Qty
FROM CDIMFINDATA Inner JOIN MTRSUBSTITUTE ON CDIMFINDATA.MTRL=MTRSUBSTITUTE.MTRL AND CDIMFINDATA.CDIMLINES1=MTRSUBSTITUTE.MTRDIM1 AND CDIMFINDATA.CDIMLINES2=MTRSUBSTITUTE.MTRDIM2 INNER JOIN MTRL ON MTRSUBSTITUTE.MTRL=MTRL.MTRL
INNER JOIN MTREXTRA ON MTREXTRA.MTRL=MTRSUBSTITUTE.MTRL
LEFT OUTER JOIN MTRPACK ON MTRSUBSTITUTE.MTRPACK=MTRPACK.MTRPACK
WHERE WEBVIEW=1 AND MTRSUBSTITUTE.ISACTIVE=1 AND MTRSUBSTITUTE.COMPANY=100 AND CDIMFINDATA.FISCPRD=2020 AND MTRL.SODTYPE=51 AND MTRL.MTRL=6139 AND CDIMFINDATA.WHOUSE IN (CASE MTREXTRA.BOOL01 WHEN '0' THEN ('1001') WHEN '1' THEN ('1000', '1001', '1003', '1005') END)
GROUP BY MTRSUBSTITUTE.MTRL, MTRSUBSTITUTE.CODE, MTRSUBSTITUTE.NAME, MTRPACK.CODE, MTRSUBSTITUTE.MTRDIM1, MTRSUBSTITUTE.MTRDIM2, MTRL.CDIMCATEG1, MTRL.CDIMCATEG2, MTRL.WEBVIEW, MTRSUBSTITUTE.PRICER, MTREXTRA.BOOL03, MTREXTRA.BOOL01, CDIMFINDATA.WHOUSE ORDER BY MTRSUBSTITUTE.CODE
解决方案
案例表达式不能返回值列表,你必须做其他事情,例如
AND (
MTREXTRA.BOOL01 = '0' AND CDIMFINDATA.WHOUSE = '1001'
OR MTREXTRA.BOOL01 = '1' AND CDIMFINDATA.WHOUSE IN ('1000', '1001', '1003', '1005')
)
推荐阅读
- phaser-framework - 无法通过“physics.add.existing”方法添加游戏对象
- javascript - 在 Webdriver.io v4 中使用 scroll()
- intellij-idea - 设置 VM 标志失败
- android - 403 Forbidden on Fetch post request,但仅适用于某些 Android 浏览器
- javascript - 方法在单元测试中不可用
- r - 在 R 中使用 grepl() 匹配一个句子中的两个连续单词(或:如何在 grepl() 中使用通配符)?
- android - 找不到 com.android.tools.build:gradle:3.0.1。来自 Github 的项目
- r - 我无法在 ggplot 中用 x 轴中的因子变量和 y 轴中的数字绘制一条线
- python - 对 np.array 进行切片时,np.nonzero 的功能是什么?
- java - 带有 RequestBody 的 POST 请求不起作用