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

Cách ghi động tên thuộc tính vào truy vấn chọn

Bảng của bạn có vẻ như nó không ở dạng bình thường đầu tiên.

Thay vì ba cột cho Period0Id thành Period2Id, bạn có thể có một cột cho PeriodIndex với các giá trị (0,1,2) và một cột duy nhất cho PeriodId và sau đó nó sẽ chỉ là một WHERE PeriodIndex = @Check

Bạn không thể chọn một cột bằng cách sử dụng nội suy chuỗi với một biến khi bạn đang cố gắng. Bạn có thể sử dụng SQL động để tạo chuỗi SQL động. Hoặc chỉ cần mã hóa cứng các tùy chọn nếu tất cả chúng đều có cùng một loại dữ liệu.

Select ID, 
       Name, 
       StatusId = CASE @Check WHEN 0 THEN Period0Id
                              WHEN 1 THEN Period1Id
                              WHEN 2 THEN Period2Id
                   END
From mytable


  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 để bạn xác định chuỗi mẫu bản ghi trong bản ghi bằng TSQL?

  2. Xuất Dữ liệu Máy chủ SQL thành tệp CSV

  3. Cách tính giá trị trung bình động trong n giờ qua

  4. Cái nhìn đầu tiên về Công cụ ước tính bản số của máy chủ SQL mới

  5. Mẹo sử dụng SQL Server với Salesforce