Sunday, March 25, 2012
Queries in While Condition
EX:
While (@.X <= (Select count(*) from SOME_TABLE))I was going to say no...but...
USE Northwind
GO
SET NOCOUNT ON
CREATE TABLE myTable99(Col1 int IDENTITY(1,1), Col2 char(1))
GO
INSERT INTO myTable99(Col2)
SELECT 'A' UNION ALL
SELECT 'B' UNION ALL
SELECT 'C' UNION ALL
SELECT 'D' UNION ALL
SELECT 'E'
GO
DECLARE @.x int
SELECT @.x = 1
WHILE @.x < (SELECT COUNT(*) FROM myTable99)
BEGIN
SELECT @.x = @.x + 1
END
SELECT @.x
SELECT @.x = 1
WHILE @.x < (SELECT COUNT(*) FROM myTable99)
BEGIN
IF @.x IN (1,3,5) INSERT INTO myTable99(Col2) SELECT 'x'
SELECT @.x = @.x + 1
END
SELECT @.x
GO
SET NOCOUNT OFF
DROP TABLE myTable99
GO
Thursday, February 9, 2012
(sub)case syntax Question
Hi,
How can i perform a subcase ? I need to do a subcase because when a choose one condition (cdu_integrador='1'), there is another variable that could influence the result of cdu_parcerias (tipoterceiro ='TP' or not).
I've tried 2 ways , one using "AND" on the WHEN line (when 1 and terceiro=....) and use cascading case (when 1 (case tipoterceiro when 'TP'..)..) ... both ways didnt worked...
i get a
Incorrect syntax near the keyword 'CASE'.
ANY IDEA ?
CDU_PARCERIAS =
CASE CDU_INTEGRADOR
WHEN '1' AND TIPOTERCEIRO<>'TP' THEN TIPOTERCEIRO+' + TP'
ELSE TIPOTERCEIRO
END
CDU_PARCERIAS =
CASE CDU_INTEGRADOR
WHEN '1'
CASE TIPOTERCEIRO
WHEN 'TP' THEN TIPOTERCEIRO
ELSE TIPOTERCEIRO+' + TP'
END
ELSE TIPOTERCEIRO
END
Try it like:
|||CDU_PARCERIAS =
CASE WHEN CDU_INTEGRADOR = '1'
AND TIPOTERCEIRO <> 'TP'
THEN TIPOTERCEIRO + ' + TP'
ELSE TIPOTERCEIRO
END
Use as follow as,
CDU_PARCERIAS =
CASE CDU_INTEGRADOR
WHEN '1' THEN
CASE TIPOTERCEIRO
WHEN 'TP' THEN TIPOTERCEIRO
ELSE TIPOTERCEIRO +' + TP'
END
ELSE TIPOTERCEIRO
END