sql - Join 中的用例语句

标签 sql sql-server database sql-server-2008

大家好,我想在使用此查询的连接中使用 case 语句,但出现错误

Select CONVERT(VARCHAR(10), SII.SIDATE,103)DATE,SII.SALEID,SII.ItemName,SI.TenancyID

FROM F_SALESINVOICEITEM SII
INNER JOIN F_SALESINVOICE SI ON  SI.SALEID=SII.SALEID 
INNER JOIN #TempTableSearch ts ON CASE
 WHEN ts.ACCOUNTTYPE = '1' THEN ts.ACCOUNTID=SI.TENANCYID
  WHEN ts.ACCOUNTTYPE='2' THEN ts.ACCOUNTID=SI.EMPLOYEEID
   WHEN ts.ACCOUNTTYPE='3' THEN ts.ACCOUNTID=SI.SUPPLIERID
    WHEN ts.ACCOUNTTYPE='4' THEN ts.ACCOUNTID=SI.SALESCUSTOMERID

错误

Incorrect syntax near '='.

请帮我解决这个错误。

最佳答案

应该是,

ON 
ts.ACCOUNTID =  CASE
                    WHEN ts.ACCOUNTTYPE = '1' THEN SI.TENANCYID
                    WHEN ts.ACCOUNTTYPE = '2' THEN SI.EMPLOYEEID
                    WHEN ts.ACCOUNTTYPE = '3' THEN SI.SUPPLIERID
                    WHEN ts.ACCOUNTTYPE = '4' THEN SI.SALESCUSTOMERID
                END

关于sql - Join 中的用例语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18979298/

相关文章:

sql - INSERT INTO ... SELECT 更多 SELECT 列

sql - 计算两个日期之间事件的记录数

sql-server - 在 Sql Server Docker 容器中禁用密码策略

sql-server - 并行化存储过程是否会在集群上产生更高的性能?

sql - 用 HAVING cause 和 CASE 对 GROUP BY 求和 - Postgres

php - MySQL检查表是否存在而不抛出异常

sql - 在 sql server 中使用全文搜索查找单词部分

使用同一记录中的值进行 SQL 更新

sql-server - SQL Server表使用情况统计

database - 从两列具有相同值的表中选择