Sql server Concat在SQL Server中不工作
我有一个名为product的表,其中包含名称(nvarchar 1000) 我有一个名为accnt\U test的帐户表,其名称为product\USql server Concat在SQL Server中不工作,sql-server,Sql Server,我有一个名为product的表,其中包含名称(nvarchar 1000) 我有一个名为accnt\U test的帐户表,其名称为product\U id name A1 P1;;p2;;p3;;p4 A2 P1;;p2 A3 P1;;p2;;p3 A4 P1;;p2;;p3;;p4 A5 P1 我必须从包含产品表中所有产品的帐户表中选择这些帐户 因此,我的输出应该如下所示: id name A1 P1;;p2;;p3;;p4 A4 P1;;p2;;p3;;p4
id name
A1 P1;;p2;;p3;;p4
A2 P1;;p2
A3 P1;;p2;;p3
A4 P1;;p2;;p3;;p4
A5 P1
我必须从包含产品表中所有产品的帐户表中选择这些帐户
因此,我的输出应该如下所示:
id name
A1 P1;;p2;;p3;;p4
A4 P1;;p2;;p3;;p4
因为这两个帐户包含产品表中的所有产品
我已经在SQL Server中编写了一个查询,但它不起作用
这是一个问题:
SELECT *
FROM accnt_test ACC
WHERE ACC.product_name IN
(SELECT VM.product_name
FROM (SELECT A.*, P.NAME
FROM accnt_test A, product P
WHERE A.product_name LIKE
CONCAT('%', CONCAT(P.NAME, '%'))) VM
GROUP BY VM.product_name
HAVING COUNT(*) = (SELECT COUNT(DISTINCT NAME) FROM PRODUCT));
那么如何在concat的情况下使用它呢
但是SQL Server显示错误:
sg 195, Level 15, State 10, Line 9
'CONCAT' is not a recognized built-in function name.
Msg 102, Level 15, State 1, Line 11
Incorrect syntax near ')'.
CONCAT是SQL Server 2012的新功能。它不是以前版本(包括2008 R2)上的功能 使用“fn concat”
select {fn concat('%', {fn concat('String', '%')})}
这是带有“fn concat”的代码。它会起作用的
SELECT *
FROM accnt_test ACC
WHERE ACC.product_name IN
(SELECT VM.product_name
FROM (SELECT A.*, P.NAME
FROM accnt_test A, product P
WHERE A.product_name LIKE
{fn concat('%', {fn concat(P.NAME, '%')})}) VM
GROUP BY VM.product_name
HAVING COUNT(*) = (SELECT COUNT(DISTINCT NAME) FROM PRODUCT));
CONCAT是SQL Server 2012的新功能。它不是以前版本(包括2008 R2)上的功能 使用“fn concat”
select {fn concat('%', {fn concat('String', '%')})}
这是带有“fn concat”的代码。它会起作用的
SELECT *
FROM accnt_test ACC
WHERE ACC.product_name IN
(SELECT VM.product_name
FROM (SELECT A.*, P.NAME
FROM accnt_test A, product P
WHERE A.product_name LIKE
{fn concat('%', {fn concat(P.NAME, '%')})}) VM
GROUP BY VM.product_name
HAVING COUNT(*) = (SELECT COUNT(DISTINCT NAME) FROM PRODUCT));
CONCAT是SQL Server 2012的新功能。它不是以前版本(包括2008 R2)上的功能 使用“fn concat”
select {fn concat('%', {fn concat('String', '%')})}
这是带有“fn concat”的代码。它会起作用的
SELECT *
FROM accnt_test ACC
WHERE ACC.product_name IN
(SELECT VM.product_name
FROM (SELECT A.*, P.NAME
FROM accnt_test A, product P
WHERE A.product_name LIKE
{fn concat('%', {fn concat(P.NAME, '%')})}) VM
GROUP BY VM.product_name
HAVING COUNT(*) = (SELECT COUNT(DISTINCT NAME) FROM PRODUCT));
CONCAT是SQL Server 2012的新功能。它不是以前版本(包括2008 R2)上的功能 使用“fn concat”
select {fn concat('%', {fn concat('String', '%')})}
这是带有“fn concat”的代码。它会起作用的
SELECT *
FROM accnt_test ACC
WHERE ACC.product_name IN
(SELECT VM.product_name
FROM (SELECT A.*, P.NAME
FROM accnt_test A, product P
WHERE A.product_name LIKE
{fn concat('%', {fn concat(P.NAME, '%')})}) VM
GROUP BY VM.product_name
HAVING COUNT(*) = (SELECT COUNT(DISTINCT NAME) FROM PRODUCT));
你的代码中有太多的bug。根据MySQL,SQL SERVER 2008R2或以前版本中没有内置的
concat
函数。尝试按以下方式更改查询:
SELECT *
FROM accnt_test ACC
WHERE ACC.product_name IN (SELECT A.product_name
FROM accnt_test A,
product P
WHERE A.product_name LIKE '%' + P.NAME + '%')
GROUP BY product_name
HAVING Count(*) = (SELECT Count(DISTINCT NAME)
FROM PRODUCT)
你的代码中有太多的bug。根据MySQL,SQL SERVER 2008R2或以前版本中没有内置的
concat
函数。尝试按以下方式更改查询:
SELECT *
FROM accnt_test ACC
WHERE ACC.product_name IN (SELECT A.product_name
FROM accnt_test A,
product P
WHERE A.product_name LIKE '%' + P.NAME + '%')
GROUP BY product_name
HAVING Count(*) = (SELECT Count(DISTINCT NAME)
FROM PRODUCT)
你的代码中有太多的bug。根据MySQL,SQL SERVER 2008R2或以前版本中没有内置的
concat
函数。尝试按以下方式更改查询:
SELECT *
FROM accnt_test ACC
WHERE ACC.product_name IN (SELECT A.product_name
FROM accnt_test A,
product P
WHERE A.product_name LIKE '%' + P.NAME + '%')
GROUP BY product_name
HAVING Count(*) = (SELECT Count(DISTINCT NAME)
FROM PRODUCT)
你的代码中有太多的bug。根据MySQL,SQL SERVER 2008R2或以前版本中没有内置的
concat
函数。尝试按以下方式更改查询:
SELECT *
FROM accnt_test ACC
WHERE ACC.product_name IN (SELECT A.product_name
FROM accnt_test A,
product P
WHERE A.product_name LIKE '%' + P.NAME + '%')
GROUP BY product_name
HAVING Count(*) = (SELECT Count(DISTINCT NAME)
FROM PRODUCT)
您使用的是哪个版本的SQLServer?CONCAT仅在2012年和2014年受支持。您可以使用内部联接获取包含所有产品的帐户,然后使用delimeter的sql到CONCAT产品的XML路径功能。让我知道您是否对该解决方案感兴趣您使用的是什么版本的SQLServer?CONCAT仅在2012年和2014年受支持。您可以使用内部联接获取包含所有产品的帐户,然后使用delimeter的sql到CONCAT产品的XML路径功能。让我知道您是否对该解决方案感兴趣您使用的是什么版本的SQLServer?CONCAT仅在2012年和2014年受支持。您可以使用内部联接获取包含所有产品的帐户,然后使用delimeter的sql到CONCAT产品的XML路径功能。让我知道您是否对该解决方案感兴趣您使用的是什么版本的SQLServer?CONCAT仅在2012年和2014年受支持。您可以使用内部联接获取包含所有产品的帐户,然后使用delimeter的sql到CONCAT产品的XML路径功能。如果您对该解决方案感兴趣,请告诉我。不,只有SQL server 2012及以后的解决方案才有兴趣。检查MSDN@Rahul是的,忘了提到它。不,只有在SQL server 2012以后才有。检查MSDN@Rahul是的,忘了提到它。不,只有在SQL server 2012以后才有。检查MSDN@Rahul是的,忘了提到它。不,只有在SQL server 2012以后才有。勾选MSDN@Rahul yes忘了提到它。为什么不使用连接运算符
+
?这样行吗。但在这里,他问康卡特为什么不工作。因此,我建议将{fn concat('',)}用于较低版本。为什么不使用串联运算符+
?这是可行的。但在这里,他问康卡特为什么不工作。因此,我建议将{fn concat('',)}用于较低版本。为什么不使用串联运算符+
?这是可行的。但在这里,他问康卡特为什么不工作。因此,我建议将{fn concat('',)}用于较低版本。为什么不使用串联运算符+
?这是可行的。但在这里,他问康卡特为什么不工作。因此,我建议{fn concat('','')}用于较低版本。