尝试在SQL Server中使用CASE语句

克里沙

我有一张表,其中的数据如下所示,

create  table #UserRegion 
(
    UserName varchar(25),
    RegionName varchar(25),
    RegionID varchar(10),
    RegionStatus varchar(15),
    DefaultFlag char(1)
)

Insert into #UserRegion
values ('UserOne', 'Chicago', 'MW-1', 'Oniline', '1'),
       ('UserTwo', 'SanJose', 'W-6', 'Oniline', '0'),
       ('UserThree', NULL, NULL, 'Oniline', NULL),
       ('UserFour', NULL, NULL, 'Oniline', NULL),
       ('UserFive', 'Miami', 'E-4', 'Oniline', '0')

我想要的结果集是,如果regionname / regionid为null,那么它应该从Defaultflag = 1的可用区域名和区域ID中选择区域名和区域ID。

任何帮助将不胜感激。

戈登·利诺夫(Gordon Linoff)

您似乎拥有非常差的数据结构。为什么默认值与用户一起存储?

无论如何,这可能会满足您的要求:

select ur.*,
       coalesce(ur.regionname, urdefault.regionname) as regionname,
       coalesce(ur.regionid, urdefault.regionid) as regionid
from #UserRegion ur cross join
     (select ur.*
      from #UserRegion ur
      where DefaultFlag = '1'
     ) urdefault;

假定只有一行设置了默认标志。

我应该注意,您可以在没有子查询的情况下执行此操作:

select ur.*,
       coalesce(ur.regionname,
                max(case when DefaultFlag = '1' then regionname end) over ()
               ) as regionname,
       coalesce(ur.regionid,
                max(case when DefaultFlag = '1' then regionid end) over ()
               ) as regionid
from #UserRegion ur;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试在SQL Server中使用CASE语句

来自分类Dev

在 SQL Server 中使用嵌套的 CASE 语句

来自分类Dev

SQL Server 中使用 Case 语句的嵌套 If 语句

来自分类Dev

在SQL Server中使用case语句更新多列

来自分类Dev

在SQL Server中使用case语句选择SELECT AS

来自分类Dev

如何在SQL Server中使用CASE语句

来自分类Dev

在 SQL Server 的 WHERE 子句中使用 CASE 语句

来自分类Dev

在 SQL Server 2008 中使用 case 语句减去 2 行

来自分类Dev

在 SQL Server 的 case 语句中使用 set

来自分类Dev

在oracle sql中使用CASE语句

来自分类Dev

在SQL Server中使用case语句时Order by子句中的错误

来自分类Dev

在SQL Server中的case语句中使用Row_Number()

来自分类Dev

如何在SQL Server中使用多个CASE语句更新多行?

来自分类Dev

SQL Server-在CASE语句中使用少于符号引起的麻烦

来自分类Dev

SQL Server:在Where子句中使用Case语句会产生错误

来自分类Dev

为什么在MS SQL Server的Where子句中使用CASE语句

来自分类Dev

在SQL Server中使用select和case进行更新语句

来自分类Dev

尝试在SQL WHERE IN语句中使用变量

来自分类Dev

尝试在 SQL SELECT 语句中使用 DATETIME

来自分类Dev

如何使用MySql在sql语句中使用SELECT CASE

来自分类Dev

SQL Server:如何在insert语句中使用if语句

来自分类Dev

在SQL Server中使用join in case语句时,无法绑定多部分标识符“ Transaction_tbl.locid”

来自分类Dev

在SQL Server中使用join in case语句时,无法绑定多部分标识符“ Transaction_tbl.locid”

来自分类Dev

sql server 在数据库中存储比较运算符并在 case 语句中使用

来自分类Dev

如何在 SQL Server 数据库的 where 子句中使用基于日期获取数据的 case 语句

来自分类Dev

如何在SQL case语句中使用> =条件?

来自分类Dev

SQL在WHERE IN子句中使用CASE语句

来自分类Dev

如何在Where语句Oracle SQL中使用CASE?

来自分类Dev

如何在SQL select查询中使用case语句

Related 相关文章

  1. 1

    尝试在SQL Server中使用CASE语句

  2. 2

    在 SQL Server 中使用嵌套的 CASE 语句

  3. 3

    SQL Server 中使用 Case 语句的嵌套 If 语句

  4. 4

    在SQL Server中使用case语句更新多列

  5. 5

    在SQL Server中使用case语句选择SELECT AS

  6. 6

    如何在SQL Server中使用CASE语句

  7. 7

    在 SQL Server 的 WHERE 子句中使用 CASE 语句

  8. 8

    在 SQL Server 2008 中使用 case 语句减去 2 行

  9. 9

    在 SQL Server 的 case 语句中使用 set

  10. 10

    在oracle sql中使用CASE语句

  11. 11

    在SQL Server中使用case语句时Order by子句中的错误

  12. 12

    在SQL Server中的case语句中使用Row_Number()

  13. 13

    如何在SQL Server中使用多个CASE语句更新多行?

  14. 14

    SQL Server-在CASE语句中使用少于符号引起的麻烦

  15. 15

    SQL Server:在Where子句中使用Case语句会产生错误

  16. 16

    为什么在MS SQL Server的Where子句中使用CASE语句

  17. 17

    在SQL Server中使用select和case进行更新语句

  18. 18

    尝试在SQL WHERE IN语句中使用变量

  19. 19

    尝试在 SQL SELECT 语句中使用 DATETIME

  20. 20

    如何使用MySql在sql语句中使用SELECT CASE

  21. 21

    SQL Server:如何在insert语句中使用if语句

  22. 22

    在SQL Server中使用join in case语句时,无法绑定多部分标识符“ Transaction_tbl.locid”

  23. 23

    在SQL Server中使用join in case语句时,无法绑定多部分标识符“ Transaction_tbl.locid”

  24. 24

    sql server 在数据库中存储比较运算符并在 case 语句中使用

  25. 25

    如何在 SQL Server 数据库的 where 子句中使用基于日期获取数据的 case 语句

  26. 26

    如何在SQL case语句中使用> =条件?

  27. 27

    SQL在WHERE IN子句中使用CASE语句

  28. 28

    如何在Where语句Oracle SQL中使用CASE?

  29. 29

    如何在SQL select查询中使用case语句

热门标签

归档