Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Máy chủ sql Ms - gán ngày cho một biến

Bạn không thể chỉ định một biến như vậy. Ngoài ra, điểm mấu chốt là gì? Bạn đang sử dụng biến đó ở đâu? Chỉ cần xóa set @MYYEAR = và bạn sẽ ổn. Nếu bạn thực sự muốn gán biến đó với logic đó, hãy thực hiện nó bên ngoài SELECT chính của bạn tuyên bố.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tách giá trị một cột thành nhiều giá trị cột?

  2. Cập nhật bảng bằng cách sử dụng JOIN trong SQL Server?

  3. Tạo bảng trong SQL Server 2017

  4. Thực thi quy trình được lưu trữ trong khối ÁP DỤNG NGOÀI TRỜI

  5. Cập nhật cùng một dữ liệu từ cùng một bảng