2017-07-28 34 views
0

我正在使用查询来打印“引用”字母表。它工作正常的单表,但打印NULL当我做了加入查询中的SQL的字母表引用

SELECT 
    Letters = Char(64 + T.student_id), 
    T.Student_name 
    FROM 
    dbo.Students T 
Inner join dbo.date_of_birth dob ON T.student_id = dob.student_id 
+1

你的数据是什么样的? date_of_birth表中有匹配的运行吗? –

+0

我认为你正在穿越255限制。您应该使用CHAR()来计算0到255之间的值。 –

+0

这是非标准的SQL。你正在使用哪个DBMS? –

回答

0

我假设你正试图在学生证加“64”的前缀,也许你可以使用下面的SQL语句

IF student_id数据是字符数据类型(例如VARCHAR):

SELECT Letters = '64' + T.student_id, 
     T.Student_name 
    FROM dbo.Students T 
INNER JOIN dbo.date_of_birth dob 
    ON T.student_id = dob.student_id 

IF student_id数据是数值数据类型(例如INT。):

SELECT Letters = '64' + CAST(T.student_id AS VARCHAR), 
     T.Student_name 
    FROM dbo.Students T 
INNER JOIN dbo.date_of_birth dob 
    ON T.student_id = dob.student_id