sqlserver 字符串替换为什麽执行不成功
发布网友
发布时间:2022-04-12 09:43
我来回答
共3个回答
热心网友
时间:2022-04-12 11:12
可能是在@Count为Null出现问题。另外,用replace的方法不太好。因为当@AdPozition和@AdType包含字符串"TOP"时,也会被替换掉。
建议改成:
SET
@SQL=N'SELECT
'+
CASE
WHEN
LEN(@Count)
>
0
THEN
'TOP
'
+
@Count
ELSE
''
END
+'
*
FROM
NOP_ADS
WHERE
ADPOZITION='''+@AdPozition+'''
AND
ADTYPE='''+@AdType+'''
ORDER
BY
ADPOZITION
DESC,
ADTYPE
DESC,SHOWORDER
DESC'
去掉IF和REPLACE语句。
热心网友
时间:2022-04-12 12:30
@Count
nvarchar(5)='',
@AdPozition
nvarchar(50)='',
@AdType
nvarchar(50)=''
参数都必须有值,最起码要有个默认值,要不然拼写sql语句的时候整条语句都是空