我的应用程序正在研究java + MSSQL和MySQL.below查询适用于MSSQL但不适用于MySql。 在mysql中,当我写下如下查询时,它给出了错误的结果
查询
select distinct u.id, u.first_name + ' ' + u.last_name as 'FullName', u.company_name from user_master u
它给我下面的结果
结果
id FullName company_name
1 0 abc
2 0 comp2
预期结果
id FullName company_name
1 shah priya abc
2 xyz test comp2
任何人都可以帮助我做到这一点
如果我写下面的查询,那么它的工作正常
select distinct u.id, concat(u.first_name,' ',u.last_name) as 'FullName', u.company_name
请帮我解决这个问题。
答案 0 :(得分:0)
您不应使用+
运算符进行连接。相反,你应该使用concat函数。
+
表示此处的添加。
见this
答案 1 :(得分:0)
由于您已为SQL Server添加了标记,以下内容将为您提供帮助
你的桌子
SELECT 'PRIYA' FNAME, 'RAMAN' LNAME
INTO #TEMP
您的结果
SELECT *,FNAME + ' ' + LNAME AS FULLNAME
FROM #TEMP
这是小提琴http://sqlfiddle.com/#!3/85020/1(如果加载按RUNSQL会出现任何错误)
答案 2 :(得分:0)
我建议继续使用concat()表示法,如果你只是想让它在MySQL中运行,那就更清楚恕我直言了。
如果需要查询之间的兼容性,也许您应该使用像HQL这样的高级查询语言,那么让MSSQL和MYSQL驱动程序将其转换为特定的sql习惯用法。请参阅documentation of Hibernate。
答案 3 :(得分:0)
选择不同的u.id,CONCAT_WS('',u.first_name,u.last_name)作为FullName,u.company_name来自user_master u
CONCAT& CONCAT_WS是mysql中内置的字符串函数