-2
我通過GUID過濾SQL中的記錄,如果Guid爲空,則跳過過濾器,但如果它具有某個值,則根據過濾器獲取記錄。SQL中的Guid驗證
我使用
WHERE USERID = IIF(@FILTERUSER IS NULL, AD.USERID, @FILTERUSER)
UserId
和FILTERUSER
是uniqueidentifier
類型。
但它不工作。請幫助。
我通過GUID過濾SQL中的記錄,如果Guid爲空,則跳過過濾器,但如果它具有某個值,則根據過濾器獲取記錄。SQL中的Guid驗證
我使用
WHERE USERID = IIF(@FILTERUSER IS NULL, AD.USERID, @FILTERUSER)
UserId
和FILTERUSER
是uniqueidentifier
類型。
但它不工作。請幫助。
我通過使用CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER)
而不是NULL
解決了問題。
因此,工作代碼爲:
WHERE USERID = IIF(@FILTERUSER = CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER, AD.USERID, @FILTERUSER)
其中的RDBMS用的?請添加一個標籤來指定您是使用'mysql','postgresql','sql-server','oracle'還是'db2' - 或者其他的東西。 –