如何在 SQL SELECT 中执行 CASE 语句?
How to perform a CASE statement in an SQL SELECT?
如何在 SQL SELECT 语句中执行 IF...THEN
?我可以将 Case..then
更改为 IF..THEN 吗,我在 Case..then
DECLARE @Display Varchar(10) SET @Display = '210120'
DECLARE @ret Varchar(5) SET @ret = '12345'
DECLARE @ret2 Varchar(5) SET @ret2 = '6789'
DECLARE @Custom2 Varchar(10)
SELECT (CASE
WHEN CHARINDEX(LEFT(@Display, 1),@ret) > 0 THEN
SET @Custom2 = 'None'
WHEN CHARINDEX(LEFT(@Display, 1),@ret2) > 0 THEN
SET @Custom2 = @ret+'_'+@Display
END ) as Custom
提前致谢
你的语法有点不对,试试这个:
SELECT @Custom2 = CASE WHEN CHARINDEX(LEFT(@Display, 1),@ret) > 0
THEN 'None'
WHEN CHARINDEX(LEFT(@Display, 1),@ret2) > 0
THEN @ret + '_' + @Display
END As Custom
你这里发生的事情不匹配。您不能像现在这样使用 case 表达式来控制流程……但是您也可以将其作为一列。目前还不完全清楚您要在这里做什么,但也许这会有所帮助。
DECLARE @Display Varchar(10) SET @Display = '210120'
DECLARE @ret Varchar(5) SET @ret = '12345'
DECLARE @ret2 Varchar(5) SET @ret2 = '6789'
SELECT CASE WHEN CHARINDEX(LEFT(@Display, 1),@ret) > 0 THEN
'None'
WHEN CHARINDEX(LEFT(@Display, 1),@ret2) > 0 THEN
@ret+'_'+@Display
END as Custom
如何在 SQL SELECT 语句中执行 IF...THEN
?我可以将 Case..then
更改为 IF..THEN 吗,我在 Case..then
DECLARE @Display Varchar(10) SET @Display = '210120'
DECLARE @ret Varchar(5) SET @ret = '12345'
DECLARE @ret2 Varchar(5) SET @ret2 = '6789'
DECLARE @Custom2 Varchar(10)
SELECT (CASE
WHEN CHARINDEX(LEFT(@Display, 1),@ret) > 0 THEN
SET @Custom2 = 'None'
WHEN CHARINDEX(LEFT(@Display, 1),@ret2) > 0 THEN
SET @Custom2 = @ret+'_'+@Display
END ) as Custom
提前致谢
你的语法有点不对,试试这个:
SELECT @Custom2 = CASE WHEN CHARINDEX(LEFT(@Display, 1),@ret) > 0
THEN 'None'
WHEN CHARINDEX(LEFT(@Display, 1),@ret2) > 0
THEN @ret + '_' + @Display
END As Custom
你这里发生的事情不匹配。您不能像现在这样使用 case 表达式来控制流程……但是您也可以将其作为一列。目前还不完全清楚您要在这里做什么,但也许这会有所帮助。
DECLARE @Display Varchar(10) SET @Display = '210120'
DECLARE @ret Varchar(5) SET @ret = '12345'
DECLARE @ret2 Varchar(5) SET @ret2 = '6789'
SELECT CASE WHEN CHARINDEX(LEFT(@Display, 1),@ret) > 0 THEN
'None'
WHEN CHARINDEX(LEFT(@Display, 1),@ret2) > 0 THEN
@ret+'_'+@Display
END as Custom