对mdm_eleagl_query表进行sql查询,查询内容如下 1.DESC6字段不为空 2.判断DESC48字段是否有"SC+",如果有,对比“SC+”后面的编码是否与DESC4一致,保留一致的数据,如果没有,不做修改(且将该字段名修改为EXPR1)
时间: 2024-02-20 08:57:51 浏览: 81
可以使用如下SQL语句进行查询:
```
SELECT
CASE
WHEN DESC48 LIKE '%SC+%' AND SUBSTRING_INDEX(DESC48, 'SC+', -1) = DESC4 THEN DESC6
ELSE DESC48 AS EXPR1
END AS RESULT
FROM
mdm_eleagl_query
WHERE
DESC6 IS NOT NULL;
```
这个查询语句会返回一个名为RESULT的字段,其中包含了满足条件的DESC6或者修改后的DESC48(修改后的字段名为EXPR1)。同时,查询结果只包含DESC6字段不为空的记录。
相关问题
我要从t_asc_se_bu_invitation_details 表里根据上面的查询条件查询的VIN在t_usc_mdm_dlr_carowner_cust_yp 表里是否存在的SQL
您想要查询 `t_asc_se_bu_invitation_details` 表中满足特定条件的 VIN 是否存在于另一个表 `t_usc_mdm_dlr_carowner_cust_yp` 中。在这种情况下,您可以使用 SQL 的 EXISTS 关键字来检查。假设您已经有了用于筛选的变量名,例如 `vin_condition`,以下是基本的 SQL 查询结构:
```sql
SELECT t_asc_se_bu_invitation_details.VIN
FROM t_asc_se_bu_invitation_details
WHERE your_conditions -- 这里替换为具体的查询条件
EXISTS (SELECT 1 FROM t_usc_mdm_dlr_carowner_cust_yp WHERE t_usc_mdm_dlr_carowner_cust_yp.VIN = t_asc_se_bu_invitation_details.VIN);
```
在这个查询中:
- `your_conditions` 需要用实际的查询条件替换,比如 WHERE VIN = '某些值' 或者 WHERE invitation_date BETWEEN '开始日期' AND '结束日期' 等。
- `EXISTS` 子句会查找 `t_usc_mdm_dlr_carowner_cust_yp` 表中有对应 VIN 的记录。
如果需要返回是否存在结果而非具体的 VIN,可以简化查询为:
```sql
SELECT
CASE
WHEN EXISTS (SELECT 1 FROM t_usc_mdm_dlr_carowner_cust_yp WHERE t_usc_mdm_dlr_carowner_cust_yp.VIN = t_asc_se_bu_invitation_details.VIN) THEN '存在'
ELSE '不存在'
END AS VIN_status
FROM t_asc_se_bu_invitation_details
WHERE your_conditions;
--
SELECT t.*, m1.MD_DESCRIPTION AS mapping_column_1, m2.MD_DESCRIPTION AS mapping_column_2 FROM supplier_info t INNER JOIN uf_MDM_jyfzsj m1 ON t.VENDOR_CODE = m1.MD_NUM INNER JOIN uf_MDM_jyfzsj m2 ON t.HIS_BUYER_VENDOR_CODE = m2.MD_NUM; supplier_info t t.HIS_BUYER_VENDOR_CODE 不去除其中为null的数据sql
抱歉,我刚才的回答有误。在 SQL 中,使用 `INNER JOIN` 连接两个表时,只有在连接字段的值相等的情况下,才会在结果集中返回这两个表中的数据。因此,在上述 SQL 语句中,如果 `t.HIS_BUYER_VENDOR_CODE` 的值为 `null`,那么它就无法与 `uf_MDM_jyfzsj` 表中的任何一行进行匹配,从而不会出现在结果集中。
如果你想要排除 `t.HIS_BUYER_VENDOR_CODE` 字段为 `null` 的数据,可以将 `INNER JOIN` 改为 `LEFT JOIN`,并在 `WHERE` 子句中添加条件 `t.HIS_BUYER_VENDOR_CODE IS NOT NULL`,具体如下所示:
```sql
SELECT t.*, m1.MD_DESCRIPTION AS mapping_column_1, m2.MD_DESCRIPTION AS mapping_column_2
FROM supplier_info t
LEFT JOIN uf_MDM_jyfzsj m1 ON t.VENDOR_CODE = m1.MD_NUM
LEFT JOIN uf_MDM_jyfzsj m2 ON t.HIS_BUYER_VENDOR_CODE = m2.MD_NUM
WHERE t.HIS_BUYER_VENDOR_CODE IS NOT NULL;
```
在上述 SQL 语句中,使用了两个 `LEFT JOIN` 连接表,这样即使 `t.HIS_BUYER_VENDOR_CODE` 的值为 `null`,它仍然会出现在结果集中。然后在 `WHERE` 子句中添加条件 `t.HIS_BUYER_VENDOR_CODE IS NOT NULL`,就可以排除其中为 `null` 的数据了。
阅读全文