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

Lỗi SQL:# 1064 khi tạo hàm trong plsql bằng mysql

Bạn không cần một hàm cho việc này, bạn cần một thủ tục được lưu trữ.

DELIMITER $$
CREATE PROCEDURE proc_name(IN col_number1 INT, IN col_number2 INT)
BEGIN
SET @col1 := CONCAT('CHR_MORNING', col_number1);
SET @col2 := CONCAT('CHR_EVENING', col_number2);

SET @sql := CONCAT('
SELECT 
CASE WHEN ', @col1, '="SUN" && ', @col2, '="SUN" THEN "S"
WHEN (', @col1, '="HOL" && ', @col2, '="HOL") THEN "H"
WHEN (', @col1, '="LEA" && ', @col2, '="LEA") THEN "L"
WHEN (', @col1, '="ABS" && ', @col2, '="ABS") THEN "-"
WHEN (', @col1, '="NA" && ', @col2, '="NA") THEN "-"
ELSE "8"
END AS whatever_you_want_to_name_your_column
FROM att_t_register WHERE CHR_MONTH = "jan" AND INT_YEAR = 2014;
');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

END $$
DELIMITER ;

Sau đó, bạn sẽ thực thi nó với

CALL proc_name(1, 1);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng đồng hồ đếm ngược jquery với datetime mysql?

  2. cách đặt một mảng làm biến người dùng mysql

  3. Tôi có nên mysql_real_escape_string nhập mật khẩu trong biểu mẫu đăng ký không?

  4. Lưu trữ hình ảnh trong cơ sở dữ liệu MySQL

  5. Cách tốt nhất để lưu trữ Cài đặt của ứng dụng PHP?