SQL Server SELECT CASE大脚本

时间:2019-02-22 12:32:40

标签: sql sql-server case

我想从带有CASE选项的表中选择一些记录 像这样

 SELECT col1,col2,
        CASE col2

WHEN '7c6014eb0000d37090d972c0ad2520f7' THEN 'xxxxx'
WHEN '5610d19400005469af3a78d225e11cb9' THEN 'aaaaa'
WHEN '31c08eb10000ye1aa51ff5a165246604' THEN 'bbbb'
WHEN '37e543fe00016d03007f6b304edfa94e' THEN 'ccccc'
WHEN '0ca1e79f0001zde1909b64c3d1246b80' THEN 'ddddd'
WHEN '25a14c480001g491c7284b0e107a39e7' THEN 'eeeee'
+500k line ....

    END AS TargetAliasColumnName
FROM   table

但是我有一个大脚本+ 500k记录的问题, 我刚刚(成功完成了命令。  ):/

更新:

hole脚本在执行区域中编译,但是执行后,我仅成功完成了Command。我的表名称是(帐户),表中有2列(用户,密码),表中有1百万条记录,我想选择表中所有这些记录,但要使用CASE密码记录

3 个答案:

答案 0 :(得分:1)

SQL可能太大而无法编译。如果将案例值添加到表中,您将可以执行所需的操作。

tbl_case key_column,case_value

7c6014eb0000737090d972c0ad2520f7 xxxxx

SELECT table.key_value, tbl_case.case value
from table 
join tbl_case on table.key_value = tbl_case.key_value; ----------

答案 1 :(得分:1)

最好创建表并将所有案例值对放入表中。
您可以使用 joins 实现目标。

答案 2 :(得分:0)

尝试一下,

创建另一个这样的表

    CREATE TABLE [dbo].[Table_1](
        [Col2] [nvarchar](50) NULL,
        [CaseVal] [nchar](10) NULL
    ) ON [PRIMARY]



    Insert all the Distinct data what you have. Then write a sql like below 



   SELECT b.Col1, b.Col2, a.CaseVal TargetAliasColumnName 
    FROM  Table_1 a inner join [dbo].[Table1] b on 
    a.col2=b.Col2