Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Transact-SQL和Where语句以及CASE语句_Sql Server_Tsql - Fatal编程技术网

Sql server Transact-SQL和Where语句以及CASE语句

Sql server Transact-SQL和Where语句以及CASE语句,sql-server,tsql,Sql Server,Tsql,我有以下要求,将多次加入-目前这个搜索着眼于客户的居住县。这需要更改为查看tbl\u客户\u保险。区域\u id,了解消费者的有效保险。如果客户有多个符合此标准的保险,请使用ins_id=2的县(Medicaid)。我相信我的大部分查询都是正确的,但我正在挂断ti.INSU id,我相信我需要一个案例,基本上只返回2,否则如果2不存在,返回客户的保险 SELECT ti.client_id, ti.exp_dt, ins_id, * FROM tbl_Client AS t

我有以下要求,将多次加入-目前这个搜索着眼于客户的居住县。这需要更改为查看
tbl\u客户\u保险。区域\u id
,了解消费者的有效保险。如果客户有多个符合此标准的保险,请使用ins_id=2的县(Medicaid)。我相信我的大部分查询都是正确的,但我正在挂断ti.INSU id,我相信我需要一个案例,基本上只返回2,否则如果2不存在,返回客户的保险

SELECT 
    ti.client_id, ti.exp_dt, ins_id, * 
FROM 
    tbl_Client AS tc
INNER JOIN 
    tbl_client_insurance AS ti ON ti.client_ID = tc.client_ID
WHERE 
    tc.client_id = 26 
    AND tc.active = 1
    AND (ti.exp_dt >= GETDATE() OR ti.exp_dt IS NULL)
    CASE
    --- Need some help here.

您可以在连接逻辑中添加这样的条件,如

INNER JOIN tbl_client_insurance AS ti ON ti.client_ID = tc.client_ID AND ti.ins_id=2

我不知道你想要的结果集是什么。 根据您的样本,您需要所有匹配的客户保险。 但看起来你可能只想为那个客户买一个

如果您只想为该客户购买一台,这只是一个订购问题。 你应该使用工会。 第一部分是保险id 2的查询。 第二部分是对所有其他保险的查询。 按您提供的新列排序。 对于第一部分,新列将是A。 第二部分是B。 然后只取第一排

这样,如果id 2存在,它将是第一个,否则它将是其他保险之一,或者如果没有匹配的保险,您将得到一个空的结果集


接下来的问题是,如果没有医疗补助,您如何判断选择哪些其他保险。同样,这只是订购。

这是真的,但是,如果该保险不存在,我将需要退还其他保险(如果有)。