sql >> Database >  >> RDS >> Sqlserver

Ms sql-server - een datum toewijzen aan een variabele

Zo'n variabele kun je niet toewijzen. Trouwens, wat is het punt? Waar gebruik je die variabele voor? Verwijder gewoon de set @MYYEAR = en het zou goed moeten komen. Als je die variabele echt met die logica wilt toewijzen, doe het dan buiten je hoofd SELECT verklaring.

declare @MYYEAR int
set @MYYEAR = 
(SELECT  
    CASE
        WHEN CONVERT(INTEGER,BTHDAT) = 0 THEN 0
        WHEN  datepart(DY,convert(date, BTHDAT)) > datepart(DY,'2015/07/01') THEN DATEDIFF(YEAR, convert(date, BTHDAT),'2015/07/01') - 1
        ELSE DATEDIFF(YEAR,convert(date, BTHDAT),'2015/07/01')  
    END
FROM SomeTable)

SELECT  
    SERVICE_GROUP, 
    SERVICE_CATEGORY,
    @MYYEAR
FROM
    SomeOtherTable



  1. Query-optimalisatietechnieken in SQL Server:5 best practices om de prestaties van query's te verbeteren

  2. BIT-constante retourneren uit SQL Stored Procedure

  3. sqoop export van hdfs naar orakel Fout

  4. Standen MySQL Volleybal